前提・実現したいこと
onclickによる発火時のみ一時的にonscrollの発火を止めたいです。
(onalick内でスクロール処理を実行します。)
発生している問題・エラーメッセージ
onscrollの発火が止まりません。
window.onscroll = fatalError;をコメントアウトすると発火が止まりますが、
定常的に止まってしまう?ため、コメントアウトは避けたいです。
該当のソースコード
test6.html
//質問のため、非生産的な処理
//クリックで1000pxへスクロール
//スクロール時に先頭へスクロール
//→現在の実装では競合してクリック時先頭へスクロール←クリック時は1000pxスクロールさせたい
<script> window.onload = function () { var t = ""; for (var i = 0; i < 1000; i++) { t += "<div>第" + i + "章</div>" } document.body.insertAdjacentHTML("beforeend", t); } window.onclick = function () { window.onscroll = ""; window.scroll(0, 1000); window.onscroll = fatalError; event.stopPropagation(); event.preventDefault(); return false; } window.onscroll = fatalError; function fatalError() { window.scroll(0, 0); console.log("unrecoverable error"); } </script> <body> </body>
試したこと
特になし
補足情報(FW/ツールのバージョンなど)
Google Chrome
バージョン: 74.0.3729.131(Official Build) (64 ビット)
回答2件
あなたの回答
tips
プレビュー