我正在编写一个新的Web应用程序,需要支持页面上元素的拖放操作(而不是文件拖放)。
这个问题的答案
建议使用Modernizr来检查浏览器是否支持HTML5拖放,并使用该支持或回退到jQuery UI等替代方案。
由于它们具有完全不同的模型,这意味着必须单独实现和测试所有拖放代码(非常少的共享实现)。如果对HTML5拖放有重大的,对用户有影响的好处,并且如果jQuery UI的回退会提供降级的体验,那么这似乎是合乎逻辑的。
实施这两种变体是否有显着的好处?
答案 0 :(得分:12)
我猜最终jQuery将利用内置的浏览器功能,如html 5拖放。
如果不同的浏览器以不同的方式实现它...... jQuery将处理它。
答案 1 :(得分:12)
我认为HTML5拖放jQuery的最大优势是消除了相当大的jQuery UI库和css文件。
话虽如此,目前存在浏览器兼容性问题,这使得jQuery非常需要。
答案 2 :(得分:7)
好的,已经实现了两者,我建议手动使用mousedown
/ mousemove
事件(基本上就像jquery UI那样)。
我同意jQuery UI可能有点沉重,但是有很多教程/代码片段可供自己编写代码。
为什么我建议使用手动方法而不是现代浏览器中的本机实现?因为html5 DnD sux!它对于当前的浏览器可能是新的,但是在IE5中的旧实现之后建模。
如果你正在谈论在桌面之间移动东西,那么我可能会考虑使用html5 DnD,因为它有浏览器/操作系统挂钩。否则,如果您只是在单个网页上移动DOM节点,请使用js鼠标事件手动执行。
-Paul
答案 3 :(得分:3)
我正在回答有关dnd的问题,因为这似乎就是你所要求的。
我认为有些人会混淆jQuery与jQueryUI。在性能和开发时间方面,将原生HTML5 dnd与jQuery结合使用是很好的结合。由于dnd功能来自IE世界,浏览器支持非常好(包括IE7肯定,甚至更老)。使用jQuery为您提供了至关重要的所有跨浏览器addClass()
,removeClass()
等工具。
答案 4 :(得分:0)
我刚刚将一个脚本转换为使用基于HTML5的拖放可排序脚本而不是jQueryUI脚本,因为我尝试排序的大小,初始化jQueryUI版本需要19秒,而.19初始化HTML5版本的秒数。
如此优势:速度