我正在创建一个 jquery 脚本来根据光标位置在其容器内垂直平移图像。
这就是我所做的:
$(window).load(function(){
var lastcalc = 0;
$(".tn3a-image").mousemove(function(e){
//var y = e.pageY-$(".tn3a-image").offset().top;
//var Cnt_h = $(".tn3a-image").height();
//var Cy = ($(".pan-view").height()-Cnt_h)/Cnt_h;
var calc = -(($(".pan-view").height()/$(".tn3a-image").height())-1)*(e.pageY-$(".tn3a-image").offset().top)
if (Math.abs(lastcalc-calc)<=1) return;
lastcalc = calc;
$(".tn3a-full-image").stop(true,true)
.animate({ top : calc }, 500, 'linear');
});
});
它按预期工作,但性能非常糟糕。虽然我有一个很好的 GPU/CPU,但它看起来真的很慢。我想出了两个解决方案 - 在单个变量(名为 'calc')中进行计算,并使用 '.stop(true,true)'。然而我仍然对它不是很满意。与基于 Flash 的解决方案相比,它看起来非常糟糕。
关于如何优化这个的任何想法?
谢谢你的帮助。