Jquery scrollTo()带ipad和固定元素

Jquery scrollTo()带ipad和固定元素,jquery,ipad,fixed,scrollto,Jquery,Ipad,Fixed,Scrollto,可能重复: 我们试图设置一个固定的导航来滚动页面的不同部分 我们正在使用jquery scrollTo() 只有在ipad上,第一次点击没有问题,但在这一次之后,导航上的按钮似乎被禁用了。 如果我们用手滚动,哪怕是一点点,链接就会再次工作 代码如下: 如何修复侧边栏?几周前遇到了同样的问题 发生这种情况的原因是“内容”获得焦点,点击屏幕“点击”侧边栏后面的内容。只有在使用scrollTo插件或scrollTop属性上的jquery.animate时,才会发生这种情况 为了解决这个问题,在scr

可能重复:

我们试图设置一个固定的导航来滚动页面的不同部分

我们正在使用jquery scrollTo()

只有在ipad上,第一次点击没有问题,但在这一次之后,导航上的按钮似乎被禁用了。 如果我们用手滚动,哪怕是一点点,链接就会再次工作

代码如下:


如何修复侧边栏?

几周前遇到了同样的问题

发生这种情况的原因是“内容”获得焦点,点击屏幕“点击”侧边栏后面的内容。只有在使用scrollTo插件或scrollTop属性上的jquery.animate时,才会发生这种情况

为了解决这个问题,在scrollTo动画之后,我们重新定位了窗口

$(window).scrollTop($(window).scrollTop() + 1);    
$(window).scrollTop($(window).scrollTop() - 1);

但也要记住,iOS 5之前不支持固定位置。

试试这段代码,它适合我:

var $fixedElement = $('#nav'); // Replace this with your "fixed" element

$fixedElement.css({ "position": "relative" });
window.scroll(0, 0);
$fixedElement.css({ "position": "fixed" });

对于使用Ariel Flesler的LocalScroll插件遇到此问题的任何人,Arief的上述答案都有效,可以通过以下方式应用:

$(document).ready(function() {
$.localScroll.defaults.axis = 'x';
$.localScroll({
    target:'#content',
    onAfter:function(){
        var xPos = window.pageXOffset;
        var $fixedElement = $('#menubar');
        $fixedElement.css({ "position": "absolute" });
        window.scroll(xPos,0);
        $fixedElement.css({ "position": "fixed" });
        }
    });

});
在这种情况下,我有一个水平滚动的网站(因此默认为“x”轴-您的可能不同)。我正在滚动一个“#content”div,该div设置为“overflow:hidden”(因此为“target”)。然后Arief的所有魔力都在“onAfter:函数”中

我已经对此进行了调整,因此它不是“window.scroll(0,0)”(滚动到页面的最开始),而是通过使用window.pageXOffset获取当前窗口滚动位置,并为此设置变量“xPos”(同样,如果您在Y轴上滚动,或者甚至在Y轴和Y轴上滚动,您可能还需要使用window.pageYOffset)。然后在“window.scroll(xPos,0)”中使用此变量-我的y轴为“0”,因为我没有在该轴上滚动。我相信可能有不同的方法来计算当前的滚动位置,但这对我来说效果最好


当我的'overflow:hidden'元素实际上是html标记时,我最初无法实现这一点,因此将其移动到了'#content'div,它工作得很好。我一直在iPad3上测试,所以不知道bacwards的兼容性如何。

谢谢你的回答。在寻找更优雅的东西之后,我尝试将scrollTo应用到封装div上,而不是$('body')元素上。它工作得很好。。。