好的,所以我把一个带有很多li的ul加载到一个有溢出的div中:hidden。单击下一个btn,它将下一组拇指滑入视图。
所有滑动都工作正常,但我想弄清楚如何说“如果看到最后一个li元素,那么下一个btn就不会起作用了。
由于所有都是在运行时加载并且只通过带有overflow:hidden的div裁剪出来的视图,我怎样才能找到最后一个li元素?
这完全基于以下事实:LI元素的数量可以改变,因此它们都需要是动态的,因此无论有多少LI,通用脚本都可以工作。
$('.next_btn').click(function() {
var baseElement = $($('.cs_vidThumbList', $(this).parent().parent())
);
var currLoc = $(baseElement).css('left');
if (currLoc!=0) {
$(baseElement).animate({
left:'-=625',},
'slow')
}
});
每次点击,我都会将ul(这是'baseElement'在上面)滑动-625,因为至少有5个缩略图显示,直到我们结束并且每个li的总宽度为125。
所以我需要一种方法来检查最后一个LI是否实际在屏幕上。我想知道我是否可以某种方式检查一个id为“last”的li的左侧属性但是我仍然无法想到Jquery如何知道是否因为整个UL被加载(即...它在技术上是可见的,只是从视图中裁剪而来)
答案 0 :(得分:0)
你可以(虽然我确定有更好的方法)计算li
本身中ul
个元素的数量,然后找出最后一个可能的位置将出现'set'图像。
您应该在点击事件之前运行此计算。
var listLength = $("ul li").length;
除以每组中的数字,我认为你说的是5,然后将其四舍五入到最接近的整数
var setTotal = listLength / 5;
setTotal = Math.ceil(setTotal); // round it up to a whole number
然后将该结果乘以-625以得到可能的移动总数
var maxMovement = setTotal * -625;
然后您就会知道,当代码中的currLoc
等于或大于maxMovement
时,您就会知道您正在查看最后一组图像。