Jquery mobile jQuery mobile固定页脚、iOS web视图和scrollTop问题

Jquery mobile jQuery mobile固定页脚、iOS web视图和scrollTop问题,jquery-mobile,Jquery Mobile,我有一个运行Backbone.js和jQuery mobile的移动应用程序。因为我有Backbone.js,而且出于性能原因,我禁用了所有JQM路由和转换。我知道存储滚动位置是JQM中可用的功能,但据我所知,我无法利用这一功能 我有一个列表视图,其中可能有很长的项目列表。当用户在移动设备上点击一个时,它存储当前滚动位置并呈现新视图。当用户点击后退按钮时,它会返回历史记录中的一个 clickLink: -> window.lastScroll = $(window).scrollT

我有一个运行Backbone.js和jQuery mobile的移动应用程序。因为我有Backbone.js,而且出于性能原因,我禁用了所有JQM路由和转换。我知道存储滚动位置是JQM中可用的功能,但据我所知,我无法利用这一功能

我有一个列表视图,其中可能有很长的项目列表。当用户在移动设备上点击一个时,它存储当前滚动位置并呈现新视图。当用户点击后退按钮时,它会返回历史记录中的一个

clickLink: ->
    window.lastScroll = $(window).scrollTop()

render: ->
    ...

    if window.lastScroll
        $.mobile.silentScroll window.lastScroll
        window.lastScroll = undefined
这在桌面Safari上可以正常工作,但当我在iOS Safari模拟器和真机上使用它时,固定页脚导航栏出现了问题

如果用户点击后退,listview将按预期向下滚动,但是如果用户点击页脚导航栏,就好像用户点击了它下面的一样,它下面的任何列表项都将被激活。如果用户在点击导航栏之前滚动一点,一切正常

有人有什么想法吗?也许有一种更好的方法可以避免这个问题


提前感谢您的帮助。

这可能与此错误有关吗

从这里链接

我发现在第一个链接中有一个变通方法-值得一试吗?

Chad Smith回答了这个问题

他的方法对我最有效。以下是他的回答:

我通过增加一个101%高的div,然后几乎立即删除它来解决这个问题

尝试:

当您滚动时:

window.scrollTo(0, _NEW_SCROLLTOP_);
$('body').append($('<div></div>').addClass('iosfix'));
setTimeout(function() {
  $('.iosfix').remove();
}, 500);
它还可以与jQuery.scrollTo一起使用


请参见示例。

Chad Smith的这一解决方案对我来说效果最好:
window.scrollTo(0, _NEW_SCROLLTOP_);
$('body').append($('<div></div>').addClass('iosfix'));
setTimeout(function() {
  $('.iosfix').remove();
}, 500);