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 Phone (およびできればすべての既知のデバイス) で作業できますか。

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 に答える