Javascript 图像在卷轴上无限循环
我试图实现这样一种效果:每个图像在滚动时向上移动,每个图像以不同的速度移动,从屏幕顶部移出,然后以无限循环的方式从页面底部重新出现。 下图 任何例子或建议都将不胜感激,谢谢 编辑: 这是一个完美的例子,但我希望卷轴是无限的,对象从底部重新出现Javascript 图像在卷轴上无限循环,javascript,jquery,css,css-animations,Javascript,Jquery,Css,Css Animations,我试图实现这样一种效果:每个图像在滚动时向上移动,每个图像以不同的速度移动,从屏幕顶部移出,然后以无限循环的方式从页面底部重新出现。 下图 任何例子或建议都将不胜感激,谢谢 编辑: 这是一个完美的例子,但我希望卷轴是无限的,对象从底部重新出现 $.fn.moveIt = function(){ var $window = $(window); var instances = []; $(this).each(function(){ instances.push(new moveItItem(
$.fn.moveIt = function(){
var $window = $(window);
var instances = [];
$(this).each(function(){
instances.push(new moveItItem($(this)));
});
window.addEventListener('scroll', function(){
var scrollTop = $window.scrollTop();
instances.forEach(function(inst){
inst.update(scrollTop);
});
}, {passive: true});
}
var moveItItem = function(el){
this.el = $(el);
this.speed = parseInt(this.el.attr('data-scroll-speed'));
};
moveItItem.prototype.update = function(scrollTop){
this.el.css('transform', 'translateY(' + -(scrollTop / this.speed) +
'px)');
};
// Initialization
$(function(){
$('[data-scroll-speed]').moveIt();
});
首先,你应该在你的图像中有绝对的定位
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
.
.
.
.
首先,你应该在你的图像中有绝对的定位
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
<img src="..." style="position: absolute; left: XXXpx: top: YYYpx;" data-scrollamount="ZZZ" />
.
.
.
.
您可以使用纯CSS解决方案来实现所需的效果,这可以使用创建。在下面的示例中,所有元素都在一个网格中,对于相同的动画
gotop
,每个项目都有不同的执行时间
div{
位置:固定;
左:0;
宽度:100%;
身高:100%;
显示:网格;
栅柱间隙:5%;
网格模板列:自动;
溢出:隐藏;
}
div.interner-container::-webkit滚动条{
显示:无;
}
.A{
高度:自动;
动画名称:gotop;
动画持续时间:3s;
动画迭代次数:无限;
}
.B{
高度:自动;
动画名称:gotop;
动画持续时间:2秒;
动画迭代次数:无限;
}
C{
高度:自动;
动画名称:gotop;
动画持续时间:6s;
动画迭代次数:无限;
}
博士{
高度:自动;
动画名称:gotop;
动画持续时间:9秒;
动画迭代次数:无限;
}
@关键帧跳转{
从{
利润率最高:120%;
}
到{
利润率最高:-20%;
}
}
textA
textB
textC
短信
您可以使用纯CSS解决方案来实现所需的效果,可以使用创建。在下面的示例中,所有元素都在一个网格中,对于相同的动画gotop
,每个项目都有不同的执行时间
div{
位置:固定;
左:0;
宽度:100%;
身高:100%;
显示:网格;
栅柱间隙:5%;
网格模板列:自动;
溢出:隐藏;
}
div.interner-container::-webkit滚动条{
显示:无;
}
.A{
高度:自动;
动画名称:gotop;
动画持续时间:3s;
动画迭代次数:无限;
}
.B{
高度:自动;
动画名称:gotop;
动画持续时间:2秒;
动画迭代次数:无限;
}
C{
高度:自动;
动画名称:gotop;
动画持续时间:6s;
动画迭代次数:无限;
}
博士{
高度:自动;
动画名称:gotop;
动画持续时间:9秒;
动画迭代次数:无限;
}
@关键帧跳转{
从{
利润率最高:120%;
}
到{
利润率最高:-20%;
}
}
textA
textB
textC
短信
我认为您可以通过translateY或topPlease上的css动画来实现这一点,请向我们展示您的努力。这将更容易找到帮助。我认为你可以通过translateY或topPlease上的css动画来实现这一点。请向我们展示你的努力。这样会更容易找到帮助。