我目前有用于向下滚动屏幕的图像(使用jQuery完成),但我希望它们在某一点停止。
这是我目前的代码。
$(document).ready(function() {
var $bagSix = $("#six");
var $bagEight = $("#eight");
var $bagTen = $("#ten");
var $bagTwelve = $("#twelve");
$(window).scroll(function(){
$bagSix
.stop()
.animate({"marginTop": ($(window).scrollTop() + 30) + "px"}, "slow" );
});
$(window).scroll(function(){
$bagEight
.stop()
.animate({"marginTop": ($(window).scrollTop() + 30) + "px"}, "slow" );
});
$(window).scroll(function(){
$bagTen
.stop()
.animate({"marginTop": ($(window).scrollTop() + 30) + "px"}, "slow" );
});
$(window).scroll(function(){
$bagTwelve
.stop()
.animate({"marginTop": ($(window).scrollTop() + 30) + "px"}, "slow" );
});
});
答案 0 :(得分:3)
如果您想在特定点停留,可以执行以下操作:
var new_top = Math.min($(window).scrollTop() + 30, 500);
$bagSix
.stop()
.animate({"marginTop": new_top + "px"}, "slow" );
这会计算新的目标位置,并确保它永远不会从页面顶部传递500像素。
答案 1 :(得分:2)
<强> jsBin demo 强>
$(document).ready(function() {
var $bags = $("#six, #eight, #ten, #tweleve");
$(window).scroll(function(){
var winScrT = $(window).scrollTop();
if(winScrT < 789 ){ // or what you prefer
$bags.stop().animate({marginTop: winScrT+30 }, "slow" );
}
});
});
为什么不在所有的包里使用一个类,如:
var $bags = $(".bag");
答案 2 :(得分:0)
首先,使用以下内容总结调用:
$("#image1, #image2, etc.")
然后编辑你的功能:
$(window).scroll(function(){
$images.stop().animate({
"marginTop": Math.min($(window).scrollTop() + 30, <stopping point>) + "px"}, "slow" );
});
希望有所帮助