0

我使用以下代码使被拖动的元素在连接的可排序列表上方时变为透明。

$(':dragged').css({'opacity': 0.5});    

问题是,在使用这个之后,拖动动作不像以前那么流畅,并且光标有时与被拖动的元素有偏移。

为什么会这样?我该如何解决?

4

1 回答 1

1

如评论中所述,您这样做的方式将导致 CSS 在拖动对象时不断更新。

这显然会导致即使是最好的浏览器也会卡顿。

您可能想要做的是将不透明度更改绑定到drag事件,然后在停止拖动时再次将其设置回来:

$('.draggableClass').bind('drag',function( event ){
    $(this).css({'opacity': 0.5});
});
$('.draggableClass').bind('dragstop', function(event) {
    $(this).css({'opacity': 1.0});
});

这样,CSS 更改只会在拖动开始时发生一次,并且在完成时再发生一次,而不是在拖动期间每分钟发生数百次,就像在您的代码中发生的那样。

希望有帮助。

于 2012-07-31T20:18:56.447 回答