我使用以下内容在this page的页脚中创建下一个/上一个按钮:
function scroll(direction) {
var scroll, i,
positions = [],
here = $(window).scrollLeft(),
collection = $('.block');
collection.each(function() {
positions.push(parseInt($(this).offset()['left'],10));
});
for(i = 0; i < positions.length; i++) {
if (direction == 'next' && positions[i] > here) { scroll = collection.get(i); break; }
if (direction == 'prev' && i > 0 && positions[i] >= here) { scroll = collection.get(i-1); break; }
}
if (scroll) {
$.scrollTo(scroll, {
duration: 750
});
}
return false;
}
$("#next,#prev").click(function() {
return scroll($(this).attr('id'));
});
我从这个source抓取了这段代码。
它适用于Chrome和Safari,但不适用于iPhone和iPad。点击箭头我得到图像跳跃/闪烁而没有滚动。
任何提示?谢谢!
修改的
在阅读完iPad后,{I}不喜欢$(window).scrollLeft();
而且IE8不喜欢window.pageXOffset;
,我也尝试了以下内容:
if ( agent.match(/(iPhone|iPod|iPad)/) ) {
here = window.pageXOffset;
} else {
here = $(window).scrollLeft();
}
当我读到iPad时,请不要滚动body
元素:
if (scroll) {
$.scrollTo(scroll, {
target: '#container',
duration: 750
});
}
但仍然无法在iPad / iPhone上运行。
答案 0 :(得分:0)
好的,通过设置轴有点工作,虽然我的旧iPhone仍然有问题:
if (scroll) {
$.scrollTo(scroll, {
target: '#container',
duration: 750,
axis:'x'
});
}