2

私は自分のアイデアをいくつか試して学ぶためだけにウェブサイトを構築しました. firefox でテストしたところ、問題が見つかりました。画像が特定の位置に来るとページがスクロールするスクロール機能を作りました。矢印キーで画像が移動します。IE9 と Chrome では問題なく動作しますが、Firefox では矢印キーを入力するとページがスクロールします。矢印キーのページアップ、ページダウン、ホーム、エンドナビゲーションが原因だと思っていましたが、firefoxで矢印キーによるナビゲーションを無効にしても問題は解決しません。

スクロール機能:

    function scrollPage() {
    if(xpos > scrollPosX[scrolledX + 1]) {  
        scrolledX++;
        window.scroll(scrollPosX[scrolledX],scrollPosY[scrolledY]);                 
    }
    if(xpos < scrollPosX[scrolledX] - ufoWidth) {   
        scrolledX--;
        window.scroll(scrollPosX[scrolledX],scrollPosY[scrolledY]);                 
    }   
    if(ypos > scrollPosY[scrolledY + 1]) {  
        scrolledY++;
        window.scroll(scrollPosX[scrolledX],scrollPosY[scrolledY]);                 
    }
    if(ypos < scrollPosY[scrolledY] - ufoHeight) {  
        scrolledY--;
        window.scroll(scrollPosX[scrolledX],scrollPosY[scrolledY]);                 
    }   

    info5.html('scrolledX: ' + scrolledX + '<br />scrolledY: ' + scrolledY + '<br />scrollPosX: ' + scrollPosX[scrolledX] + '<br />scrollPosY: ' + scrollPosY[scrolledY]);
    scrollLoop = setTimeout(scrollPage, 100);
}
  • xpos と ypos は、画像の左と上の位置です。
  • scrollPosX と scrollPosY は、スクロールする位置を含む配列です。
  • scrolledX と scrolledY は、スクロールをカウントするためのものです。

これが私がアップロードしたデモです。完全なコードについては、ページのソースを参照してください: http://www.mikeywebs.nl/

誰かがこれを解決する方法を教えてくれることを願っています。私のコードに関するいくつかのコメントも大歓迎です。なぜなら、私はまだ学んでいるからです。

ありがとう。

4

1 に答える 1

2

デモのコードでは、スクロール イベントの発生を妨げるものは何もありません。インライン JS コードの 96 行目付近でこれを試してください。

$(document).keydown(function(e){
  e.preventDefault(); // Add this
  var code = e.keyCode; 
  switch (code) {

スクロールの防止に関する SO の詳細については、 「スクロールを無効にする方法」を参照してください。

于 2013-06-04T13:44:29.290 に答える