我不能100%确定问题标题是否准确,所以如果有人能够准确解释我想要做的事情,我愿意改变。
我有一个div包含第一张图像下每个“项目”的图像和副本,我想要做的是位置:当项目的第一个图像到达某个点时修复div,到目前为止我已经管理过当页面向右滚动时。
工作原理
它检查div的左侧位置最初固定的div,然后如果它足够接近(fixedLeft + 400),则类交换,被卡住的原始div继续它的快乐方式和新一根棍子。
虽然没有经过彻底的测试,但效果很好,我将不得不进行一些调试,但是我试图让它重新回到原点。
这是我的小提琴 - 大版本=图片可能太大http://fiddle.jshell.net/tara_irvine/d5VdF/12/show/
以及代码http://jsfiddle.net/tara_irvine/d5VdF/12/
的小提琴部分代码中删除了大量内容,因为我的内容是动态的,所有内容(内容和副本)都是基于隐藏的导航,因此可能会被忽略。
即使有人可以通过它应该如何工作的逻辑来与我交谈。
我真的希望有人可以提供帮助。 非常感谢
答案 0 :(得分:1)
为每个li元素添加行为似乎是一种解决问题的奇怪方法。我最初将第一个复制容器设置为固定副本,然后在$(window).scroll
中设置一个$(document).ready
并跟踪它的偏移量。达到某个阈值后,更改类。这也应该更容易逆转。
更新:这对我有用
$(document).ready(function(){
$(window).scroll(function (){
var offset = $(".fixed-copy").offset().left;
$(".fixed-copy").find(".offsetLeftGroupPrev").html(offset);
var next = $(".fixed-copy").parents("ul").next("ul.imgGroup").find(".copy-container");
var prev = $(".fixed-copy").parents("ul").prev("ul.imgGroup").find(".copy-container");
if(offset > next.offset().left){
$(".fixed-copy").removeClass("fixed-copy");
next.addClass("fixed-copy");
}
if(prev!=null && prev.offset() != null){
if(offset < prev.offset().left){
$(".fixed-copy").removeClass("fixed-copy");
prev.addClass("fixed-copy");
}
}
});
});