几天用js实现了鼠标拖动div的功能,但是用起来不是那么便捷,于是想着把这个功能做成一个组件,使用的时候直接引入,不用再写那么多冗余代码了。
js组件的基本写法和div拖动的逻辑就不再赘述了,前面文章已经说过了,可点击下面链接查看
js实现div可拖动
js组件的基本写法
在这里主要分析下怎么限制拖动的范围,先看下图:
限制范围
拖动时有四种边缘情况,即图中的1、2、3、4,我们一一来看
理论知识弄明白了,我们先看下实现的效果吧
有范围的拖动
html中引入组件,并初始化
html中引入组件
具体的js组件实现
js拖动组件1
js拖动组件2
演示地址: https://sortablejs.github.io/Sortable/
Github:https://github.com/SortableJS/Sortable
SortableJS是一款用于在现代浏览器和触摸设备上的拖拽插件,不需要jQuery,但支持jQuery,支持Meteor,AngularJS,React,Polymer,Vue,Knockout和任何CSS库,例如Bootstrap。
通过npm
npm install sortablejs --save
通过bower
bower install --save sortablejs
<ul id="items"> <li>item 1</li> <li>item 2</li> <li>item 3</li> </ul> var el=document.getElementById('items'); var sortable=Sortable.create(el);
备注:不仅仅是可以使用ul/li,比如div等
根据官网文档简单介绍下:
string:命名,个人建议用元素id就行,用处是为了设置可以拖放容器时使用 array:[name,pull,put] name:同string的方法, pull:pull用来定义从这个列表容器移动出去的设置,true/false/'clone'/function true:列表容器内的列表单元可以被移出; false:列表容器内的列表单元不可以被移出; 'clone':列表单元移出,移动的为该元素的副本; function:用来进行pull的函数判断,可以进行复杂逻辑,在函数中return false/true来判断是否移出; put:put用来定义往这个列表容器放置列表单元的的设置,true/false/['foo','bar']/function true:列表容器可以从其他列表容器内放入列表单元; false:与true相反; ['foo','bar']:这个可以是一个字符串或者是字符串的数组,代表的是group配置项里定义的name值; function:用来进行put的函数判断,可以进行复杂逻辑,在函数中return false/true来判断是否放入;
move 事件对象:
获取或设置选项
对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素
序列化可排序的列表单元的data-id(可通过配置项中dataIdAttr修改)放入一个数组,并返回这个数组中
通过自定义列表单元的data-id的数组对列表单元进行排序
保存当前排序
完全销毁可拖拽功能
SortableJS在某些场景下非常有用,它是一个很好用的前端拖拽解决方案,合理的使用将会带来某些意想不到的惊喜,比如让某些不可拖拽模态框,变成可拖拽模态(没有实践过),喜欢折腾的小伙伴可以收藏学习了,本人翻译功底实在有限,如果对你有帮助,请点个关注吧!谢谢!
css链接
链接可以使用任何css属性(例如,color,font-family,background等)来设置样式.
另外,链接的样式可以不同,具体取决于所处的状态.以下伪选择器可用:
a:link 定义正常的为访问链接的样式
a:visited 定义访问链接的样式
a:active 一旦点击链接,链接就会激活
a:hover 当鼠标悬停时,链接的样式
下面的例子,创建一个链接,当鼠标移动到它上面的时候会改变样式
html代码:
<p><a href="https://www.sougou.com" target="_blank">搜狗</a></p>
css代码:
a:hover{ color:red; }
执行结果如下:
这是鼠标移动到链接上时,显示的样式
当为链接设置样式时,必须遵守以下规则:
a:hover 必须在a:link和a:visited之后
a:active 必须在a:hover之后
默认情况下,文本链接由浏览器加下划线.
处理带链接的文本,css最常见的用法之一是删除下划线.在下面的示例中,text-decoration属性用于删除下划线.
html代码:
<p><a class="text-decoration" href="https:www.sougou.com">我的下划线已经被删除了!</a></p>
css代码:
a.text-decoration:link{text-decoration:none;}
效果如下:
以下属性用于控制链接的样式:
border:none 从包含链接的图像中删除边框
outline:none 删除IE中点击链接行上的虚线边框
二 css自定义鼠标光标样式
css允许你将鼠标悬停在元素上时,设置所需的光标样式.例如,你可以将光标更改为手形图标,帮助图标等.而不是默认的指针.
在下面的例子中,当我们将鼠标移动到span元素上时,鼠标指针被设置为一个帮助图标.(cursor就是光标的意思)
<span style="cursor:help;">需要帮忙么?</span>
效果如下:
cursor属性还有许多其他的值.例如:
default:默认光标
crosshair:光标显示为十字准线
pointer:光标显示为手形图标
cursor的值比较多,用图片显示给大家:
通常改变鼠标光标的外观,是为了提高网站访问者的体验.但是,选择错误的光标风格也可能会引起误解.
*请认真填写需求信息,我们会在24小时内与您取得联系。