2

我有一些 javascript,我用来关闭屏幕。作为其中的一部分,我希望页面滚动到顶部,所以我正在使用window.scrollTo(0, 0)适用于 android 和 iphone 浏览器的页面,但 windows 8 手机没有滚动......

var dismissWelcome;
dismissWelcome = function(e) {
  var welcome;
  if (((e != null ? e.stopPropagation : void 0) != null) && ((e != null ? e.preventDefault : void 0) != null)) {
    e.stopPropagation();
    e.preventDefault();
  }
  welcome = document.getElementById('welcome');
  welcome.style.display = 'none';
  window.scrollTo(0, 0);
};
addEvent('dismiss-welcome', 'touchstart', dismissWelcome);

我如何才能window.scrollTo(0, 0)在 Windows 8 手机(最好是所有已知设备)上工作。

4

1 回答 1

0

我把它设置为超时,它工作正常。必须与被移除的 dom 对象有关。可能有其他方法可以解决这个问题,但这对我来说很好。

var dismissWelcome;
dismissWelcome = function(e) {
  var welcome;
  if (((e != null ? e.stopPropagation : void 0) != null) && ((e != null ? e.preventDefault : void 0) != null)) {
    e.stopPropagation();
    e.preventDefault();
  }
  welcome = document.getElementById('welcome');
  welcome.style.display = 'none';
  window.scrollTo(0, 0);
  // do it again, after the welcome page has finished being removed...
  setTimeout(function() {
    window.scrollTo(0, 0);
  }, 200);
};
addEvent('dismiss-welcome', 'touchstart', dismissWelcome);
于 2013-01-27T14:50:31.837 回答