通过angular CDK实现页面元素拖放的步骤详解


Posted in Javascript onJuly 01, 2020

通过导入@angular/cdk/drag-drop模块我们可以轻松实现元素在页面中得拖放功能,如元素在页面中随意拖动、在特定区域内拖动亦或对列表进行拖放排序等等。

CDK. The Component Dev Kit (CDK) is a set of tools that implement common interaction patterns whilst being unopinionated about their presentation. It represents an abstraction of the core functionalities found in the Angular Material library, without any styling specific to Material Design.

WEB项目中有些场景会使用元素拖动效果,那么对于angular项目我们可以通过导入“@angular/cdk/drag-drop”模块轻松实现元素自由拖动效果。

首先我们会创建拖放对象,如同:

<div class="drag">拖动元素</div>
.drag{
 position:absolute;
 left:0;
 bottom:0;
 border:1px grey solid;
 width:60px;
 height:60px;
 cursor: move;
 z-index:1;
}

然后我们在相应模块中导入拖动模块即可。

import { DragDropModule } from '@angular/cdk/drag-drop'

在页面中,我们就可以直接使用其指令实现(cdDrag)。

<div class="drag" cdkDrag></div>

即可实现自由拖动效果。

通过angular CDK实现页面元素拖放的步骤详解

angular cdk drag-drop

我们可以实现自由拖放、列表重新排序、列表间数据传输、特指拖放控制、及其拖放临界点控制等等。

拖动元素内指定拖动控制,如:

<div class="drag" cdkDrag>
 <span cdkDragHandle class="dragHandle"></span>
</div>

通过父级 cdkDrag 与 控制子级控制元素 cdkDragHandle 对其作用。

设置拖动临界点,限制在指定区域进行自由拖动。

如果要阻止用户将cdkDrag元素拖动到另一个元素之外,可以将CSS选择器传递给该cdkDragBoundary属性。该属性通过接受选择器并查找DOM直到找到与其匹配的元素为止。如果找到匹配项,则将其用作不能拖动元素的边界。放在里面cdkDragBoundary时也可以使用。

通过angular CDK实现页面元素拖放的步骤详解

Angular cdkDrag Y轴拖动

如在body中拖动,禁止拖放至不可见,或通过css选择器指定临界点

<div class="drag" cdkDrag>
 <span cdkDragHandle cdkDragBoundary="body" class="dragHandle"></span>
</div>

亦或我们可以控制仅在X轴方向或Y轴方向拖动

<div class="drag" cdkDragLockAxis = "x" cdkDrag>
 <span cdkDragHandle cdkDragBoundary="body" class="dragHandle"></span>
</div>

通过cdkDragLockAxis = "x" 或 cdkDragLockAxis = "y"控制。

更多大家可以参考官方介绍,临时使用予以笔记,仅供参考!

总结

到此这篇关于通过angular CDK实现页面元素拖放的文章就介绍到这了,更多相关angular CDK页面元素拖放内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
用js实现控制内容的向上向下滚动效果
Jun 26 Javascript
js open() 与showModalDialog()方法使用介绍
Sep 10 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
May 19 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
jQuery网页右侧广告跟随滚动代码分享
Apr 20 Javascript
Bootstrap学习笔记之css样式设计(1)
Jun 07 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 Javascript
p5.js入门教程和基本形状绘制
Mar 15 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
Nov 06 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 #Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 #Javascript
vue实现购物车列表
Jun 30 #Javascript
vue实现简单图片上传
Jun 30 #Javascript
vue基于better-scroll仿京东分类列表
Jun 30 #Javascript
vue使用better-scroll实现滑动以及左右联动
Jun 30 #Javascript
vue基于better-scroll实现左右联动滑动页面
Jun 30 #Javascript
You might like
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
javascript模拟命名空间
2015/04/17 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jquery背景跟随鼠标滑动导航
2015/11/20 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
RequireJS用法简单示例
2018/08/20 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
学习python (1)
2006/10/31 Python
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
python中对list去重的多种方法
2014/09/18 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
Python argv用法详解
2016/01/08 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
python构建深度神经网络(续)
2018/03/10 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
设计师个人求职信范文
2014/02/02 职场文书
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
爱我中华教学反思
2014/04/28 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
决心书格式及范文
2019/06/24 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL