1

ユーザーが 1 つのリンクをクリックしてページを自動的に下にスクロールし、読みやすくするページがあります。ユーザーがスクロールを停止するためにクリックする別のリンクがあります。前者は完全に機能しますが、後者は、ページのその場所でスクロールを停止する代わりに、クリックするとページが一番上に戻ります。何か案は?

function pageScroll() {
    window.scrollBy(0,1); // horizontal and vertical scroll increments
    scrolldelay = setTimeout('pageScroll()',50); // scrolls every 100 milliseconds
}
function stopScroll() {
    clearTimeout(scrolldelay);
}

別の投稿で読んだものから2番目の関数に追加しようとしましreturn false;たが、役に立ちませんでした。とにかく return の使い方がよくわかりません。助けてくれてありがとう。

4

1 に答える 1

8

私はあなたがこのようなことをしていると仮定します:

<a href="#" onclick="pageScroll();">start</a>
<a href="#" onclick="stopScroll();">stop</a>

最も簡単な解決策はonclick、次のようにイベント ハンドラーから false を返すことです。

<a href="#" onclick="pageScroll(); return false;">start</a>
<a href="#" onclick="stopScroll(); return false;">stop</a>

アイデアは、ブラウザーがイベントのデフォルト アクション (この場合#は、ページの上部にスクロールする に移動) を実行するのを停止することです。e.preventDefault()最近では、イベント ハンドラー関数をバインドして使用するのがより現代的な方法ですがreturn false;、古いスタイルのイベント属性に対しても機能します。

于 2012-04-13T11:17:32.833 に答える