通过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 相关文章推荐
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
Javascript 面向对象编程(一) 封装
Aug 28 Javascript
如何获取网站icon有哪些可行的方法
Jun 05 Javascript
jQuery中replaceWith()方法用法实例
Dec 25 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
Jun 29 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
Sep 28 Javascript
layui中table表头样式修改方法
Aug 15 Javascript
解决vant-UI库修改样式无效的问题
Nov 03 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
gojs实现蚂蚁线动画效果
Feb 18 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
YB217、YB235、YB400浅听
2021/03/02 无线电
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php中序列化与反序列化详解
2017/02/13 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
jQuery formValidator表单验证
2016/01/07 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
[05:06]DOTA2-DPC中国联赛 正赛 VG vs Magma选手采访
2021/03/11 DOTA
python显示生日是星期几的方法
2015/05/27 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
Python 编程速成(推荐)
2019/04/15 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
甜美蛋糕店创业计划书
2014/01/30 职场文书
主要负责人任命书
2014/06/06 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
婚育证明格式
2015/06/17 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
springboot+VUE实现登录注册
2021/05/27 Vue.js