获取裁剪Div:Jquery的索引值

时间:2010-07-27 21:02:05

标签: jquery

好的,所以我把一个带有很多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被加载(即...它在技术上是可见的,只是从视图中裁剪而来)

1 个答案:

答案 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时,您就会知道您正在查看最后一组图像。