关于拖拽插件murri.js的使用总结——iframe拖拽卡顿问题

做一个教务系统的界面,需要用到拖拽功能,要求可以拖拽到任意位置,支持自适应用户体验度高等

在网上找了很多类似插件,对比后决定使用murri.js

这款插件没有中文文档,github上有英文介绍和丰富的案例,所以做起来还是比较顺手的

首先放一个已完成的界面:


首页

murri的案例中展示了很多种类的拖拽,大家可以根据自己的需要选择使用

我这里使用的是比较基础的拖拽,没有排序功能等

但是中间遇到一个问题:每个拖拽的块中其实是一个单独的iframe页面,在拖拽一个块经过另一个块的时候会出现卡顿的问题,当时在网上搜了很多资料,貌似是因为当鼠标点击到iframe中时,iframe需要时间去处理相关的事件,并且两个iframe交错时,也会造成卡顿,所以无法从根源上去解决这个问题

避免卡顿方法:

1、将每个可拖拽块的上方添加内边距,缩小iframe的高度,使murri的触发区域固定在iframe之外,iframe中murri不生效。

2、在鼠标拖着块移动时,将改iframe的display设置为none,从节点当中去除,此时拖拽的只是一个div,在鼠标移开后,再将此iframe设置为block,添加回节点当中,这样就避免了两个块重叠时造成的卡顿问题。

另,可使用localstorage存储拖拽后的位置和右侧折叠按钮展开隐藏菜单,设置每个块的显示隐藏。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 之前写过一篇浏览器事件的相关操作和事件运行的原理——JavaScript浏览器事件解析。这一篇主要写一些常用的事件...
    faremax阅读 5,576评论 0 0
  • 当我觉醒。我爱上了“人”。我的心里种下了觉醒的人。 我爱上觉醒旅行。我祝福人们“两情相悦”。这是一趟我们心灵同行的...
    一临天下阅读 3,633评论 0 0
  • 一、学习与实践 1.付出不亚于任何人的努力 2.要谦虚,不要骄傲 3.要每天反省 4.活着,就要感谢 5.积善行,...
    Samshaobin阅读 1,139评论 0 1
  • 人生犹如流星过隙,恍恍惚惚已过38年,已近不惑之年。 这些年,很多时候都在恍惚一个问题:”未来还有多少年的路可走?...
    徐家三叔公阅读 3,816评论 0 51
  • 八字是概念里面包含着无限可能 八字是规律里面罗列出无数轨迹 八字是条件里面说明了事件成因 八字是范畴里面限定了万象...
    思考空间阅读 3,093评论 1 5

友情链接更多精彩内容