我可以使用iScroll来scrollToElement + offset吗?

时间:2013-05-10 18:05:20

标签: offset iscroll

我有这个代码工作......

myScroller.scrollTo(0, -654, 200);

我也有这个工作....

myScroller.scrollToElement("#p4", "1s");

有没有办法为#id添加偏移量,例如scrollToElement(“#p4”+ 100,“1s”)?

2 个答案:

答案 0 :(得分:1)

不,你不能。

myScroller.scrollToElement("#p4", "1s");

因为第一个参数应该是DOM元素的CSS选择器。因此,您可以使用"#p4" + 100来应用CSS规则吗?如果您的答案是肯定的,那么您也可以不这样做。

如果您想在特定时间之后滚动到下一个元素,您可以尝试使用具有适当超时和增量标志的nth-child() CSS属性。像这样的东西(假设你的元素在id myDiv 的父DIV元素中)

var incre = 0;
function customScrollToElement(){
  myScroller.scrollToElement("#myDiv:nth-child(" + incre + ")", 10);
  incre ++;
}
setTimeout(function(){
  customScrollToElement();
},100);

答案 1 :(得分:1)

您可以通过首先使用jQuery获取相对于其父级的元素position来进行一些计算。

var left = -1 * ( $('#p4').position().left + 100 ),
    top  = -1 * ( $('#p4').position().top );
myScroller.scrollTo(left, top, 1000);

这将滚动元素右侧100像素