javascript - jquery的scrolltop和scrollleft工作得很好,但是在iphone上它们都将另一个栏滚动到它的起始位置?

标签 javascript jquery iphone scroll scrolltop

我正在使用以下 jquery 代码垂直滚动到页面上的某个位置。这在所有浏览器上都工作得很好,并且不会影响水平滚动位置,但是当我在 iphone(在移动 safari 上)上尝试它时,除了垂直滚动到正确的位置之外,它还会一直水平滚动到左侧。同样,如果我使用scrollleft,它将水平转到正确的位置,但会返回到页面顶部。它在其他方面都工作得很好,我在任何地方都找不到任何关于这个问题的引用,如果任何遇到这个问题的人可以帮助我,因为我被难住了,我将非常感激!我什至无法一个接一个地执行(向左滚动然后向右滚动),因为无论我最后执行哪一项都会取消前一项设置的滚动位置。

if($.browser.opera)
{
    $('html').animate(
    {
        scrollTop: yscroll - 10
    }, 
    1000);
}
else
{
    $('html, body').animate(
    {
        scrollTop: yscroll - 10
    }, 
    1000);
}

非常感谢您的帮助!

戴夫

最佳答案

也许你可以先获取当前的scrollLeft(如果你对scrollLeft进行动画处理,则获取scrollTop)值,然后当用户代理告诉你这是一部iphone时,对scrollLeft和scrollTop进行动画处理

var isiPhone = navigator.userAgent.toLowerCase().indexOf("iphone");
var isiPad = navigator.userAgent.toLowerCase().indexOf("ipad");
var isiPod = navigator.userAgent.toLowerCase().indexOf("ipod");

这不是最好的,因为你会有不同的动画,但至少你会在相同的位置结束

iphone/pad 有一些问题 iPad / jQuery.animate(scroll) issues

关于javascript - jquery的scrolltop和scrollleft工作得很好,但是在iphone上它们都将另一个栏滚动到它的起始位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847722/

相关文章:

javascript - ContentFlow (coverflow) - 如何让它按照我想要的方式工作?

javascript - 从动态生成的 DataTable 输入中获取值

javascript - 使用 javascript 清除所有 HTML 字段

jquery - 如何删除所有具有相同类的元素

javascript - 无法获取图片来源

javascript - JSSOR slider 不适用于动态数据

ios - 如何在 iOS 11 中设置 UIBarButton 大小以匹配 iOS 10 中的大小

Javascript 用逗号将计数添加到数字中

ios - 使用 Titanium for iOS 为图像制作动画

iphone - 如何对自动生成的 iOS 应用进行代码设计?