我正在尝试创建自己的自定义视差插件,以便我能够选择项目从屏幕过渡的方向,并且我只是坚持确保无论用户如何滚动以及无论大小如何窗口,对象消失在正确的点。
目前我有:
var lastScrollTop = 0;
var logoStartPos = $('.bg-logo').position().left;
$(function(){
$(window).scroll(function(){
var st = $(this).scrollTop();
if (st > lastScrollTop){
if($('.bg-logo').is(':in-viewport'))
$('.bg-logo').css({'left':($('.bg-logo').position().left+10) + "px"});
} else {
if($('.bg-logo').is(':in-viewport') && logoStartPos < $('.bg-logo').position().left)
$('.bg-logo').css({'left':($('.bg-logo').position().left-10) + "px"});
}
lastScrollTop = st;
});
});
您可以猜到,这只会将项目向右移动,直到它离开屏幕。这种方式有不同的结果,因为如果我使用滚轮,如果我使用滚动条,它需要更长的时间才能消失。我还有另一个问题,如果我使用混合或有不同的视口,我会得到不同的结果。
任何提示或指示来实现我所追求的结果?
我的代码的一个工作示例位于http://motoring.egl.me.uk
谢谢马特