javascript动画系列第二篇——磁性吸附
发布日期:2021-08-21 13:17:49 浏览次数:44 分类:技术文章

本文共 1078 字,大约阅读时间需要 3 分钟。

前面的话

  上一篇,我们介绍了的实现。但在实际应用中,常常需要为拖拽的元素限定范围。而通过限定范围,再增加一些辅助的措施,就可以实现磁性吸附的效果

 

范围限定

  如果我们限定元素只可以在可视范围内移动,那么就需要对其进行范围限定

  首先,先要搞清楚是可视区域限定被拖拽元素

  左侧范围L0 = 0

  右侧范围R0 = document.documentElement.clientWidth

  上侧范围T0 = 0

  下侧范围B0 = document.documentElement.clientHeight

  元素的上下左右四边分别为

  左侧边 L = offsetLeft

  右侧边 R = offsetLeft + offsetWidth

  上侧边 T = offsetTop

  下侧边 B = offsetTop + offsetHeight

function limitedRange(obj,fn){    var L0 = 0;    var R0 = document.documentElement.clientWidth;    var T0 = 0;    var B0 = document.documentElement.clientHeight;    var L = obj.offsetLeft;    var R = obj.offsetLeft + obj.offsetWidth;    var T = obj.offsetTop;    var B = obj.offsetTop + obj.offsetHeight;    if(L >= L0 && R <= R0 && T >= T0 && B <= B0){        fn(obj);    }}

 

拖拽范围

  如果将范围限定在拖拽元素上,则需要一些改变

  首先,限定条件并不是在范围内执行什么,而是不在范围内时,应该执行什么

  由于在拖拽实现中,已经获取了元素距离可视区域左上角的X轴和Y轴的距离,所以不需要再通过offsetLeft和offsetTop进行重新获取

测试文字

磁性吸附

  磁性吸附只需要在范围限定的基础上,做一些修改即可

  下列代码中,只要元素的四边,距离可视区域范围的四边小于50px,则元素将直接吸附对应的边上

测试文字

转载于:https://www.cnblogs.com/xiaohuochai/p/5898185.html

转载地址:https://blog.csdn.net/weixin_33720078/article/details/93671387 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Spark2.X集群运行模式
下一篇:MVC+EF 入门教程(四)

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月25日 22时09分13秒