我试图让3D图层效果这样的网页上: 示例页面: http://cloudraiders.com/平滑平移鼠标移动
我所做的几乎一切,但有一个很大的问题是无法处理:
$("#mainView").mousemove(function(event) {
//getting mouse dimentions
var pageX = event.pageX;
var pageY = event.pageY;
var mainWidth = $(this).width();
var mainHeight = $(this).height();
//
//console.log(pageX);
("#mainView").find("li").each(function(index) {
var depth = $(this).attr("dataDepth");
var scalable = $(this).attr("scalable");
var x = pageX*depth;
var y = pageY*depth;
var z = 0;
var thisScale = mainWidth/mainHeight * 1;
//setting accelerated webkit transform
$(this).css("-webkit-transform", "translate3d("+x+"%,"+y+"%,"+z+"px"+")");
});
});
问题是,translate3d不像示例页面那样平滑。它在跳。 当我将鼠标移出窗口,然后进入不同的地方时,它只是跳跃。
我已经在论坛上找到了一些解决方案,但没有用鼠标移动到好的方面。 任何帮助将不胜感激。
商祺!
编辑: 心中已经使用jQuery的动画功能:
$(this).animate({ whyNotToUseANonExistingProperty: 100 }, {
step: function(now,fx) {
$(this).css('-webkit-transform',"translate3d("+x+"%,"+y+"%,"+z+"px"+")");
},
duration:100
},'linear');
它的工作原理差不多好了,但问题是,jQuery是堆叠查询。如果我将鼠标移动很多,动画就像分钟一样。
您的脚本没有 “平稳” 过渡,如果鼠标离开/英寸。将价值观保持在一定的范围内,并尝试逐步从旧到新。另外,转换:所有......它可能不起作用,您使用3d转换,而不是2d。 – cox