由于在项目中需要用到拖拽 所以我采用了dom-drag这个拖拽库,我们这边测试效果非常好,但客户说很卡,要求调整朋友们帮忙分析下可能造成拖拽卡的原因 不胜感激有个疑点:每次拖拽,我的程序都要进行三次回调:1.onStart 2.onDrag 3.onEnd 分别代表:开始,进行中,结束
并在每次回调的时候我都要进行几次赋值操作,这点有问题吗
并在每次回调的时候我都要进行几次赋值操作,这点有问题吗
drag操作一般不会卡的
我看cloudgamer里面的拖动 的几个回掉 也是几个赋直
但是不存在卡的现象
你可以去看看
http://www.cnblogs.com/cloudgamer/archive/2008/11/17/Drag.html
3个回掉onStart: onMove: onStop:对了 没有回掉就很卡吗???
386的电脑差点, 586的好点.说到底还是 onmousedown, onmousemove, onmouseup 三个事件. 要想不卡, 在 onmousemove 的运算一定要精简, 调来调去效率肯定会低
我在各主流浏览器上做过测试了 也没发现问题我重写了个跟dom-drag功能一样的类 效果也是一样 难道是我回调时的操作问题?下面是我的三次回调操作:arr[i].onDragStart = function(x,y){
DragStartPos['x'] = x;
DragStartPos['y'] = y;
for(j=0;j<arr.length;j++){
arr[j].style.zIndex=999;
}
document.getElementById(id).style.zIndex=1000;
}
arr[i].onDrag = function(x,y){
jQuery("#"+id).addClass("sd_f");
jQuery("#"+id).removeClass("wform");
}
arr[i].onDragEnd = function(x,y){
DragEndPos['x'] = x;
DragEndPos['y'] = y;
jQuery("#"+id).addClass("wform");
jQuery("#"+id).removeClass("sd_f");
action = new Action(id,"drag",DragStartPos,DragEndPos);
//把动作信息放入actionStack(动作栈)
actionStack.push(action);
//
}