0

ウィンドウがあり、通常は上下、左右、斜めにスクロールできるとしましょう。言い換えれば、私たちは同時に下にスクロールして左にスクロールすることができます。私がやりたいのは、一度に一方向だけスクロールすることです。上下または左右のいずれか。対角線をスクロールしたくありません。

それはHTMLで可能ですか?

4

4 に答える 4

0

通常、Webサイトの幅が画面サイズを超えない限り、x方向にスクロールすることはできません。唯一の方法は、CSSでオーバーフローを防ぐことoverflow-x: hiddenです。

ただし、ユーザーがコンテンツを表示できなくなったり(スマートフォンのディスプレイなど)、ブラウザズームを使用したりする場合は、非表示のコンテンツに問題がある可能性があります...

于 2013-01-24T15:08:50.953 に答える
0

私は個人的に純粋なHTMLメソッドを知りませんが、一方向のスクロールについてはSlyプラグインをチェックしてください。トリックを行う必要があります。

于 2013-01-24T15:07:37.103 に答える
0

マウスの中ボタンのスクロールを無効にする場合は、これをheadHTMLドキュメントのセクションに配置できます(これにより、実際には中ボタンが無効になることに注意してください)。

$(document).ready(function(){
    document.onmousedown = window.onmousedown = function (e) {
        if(e.which == 2)
        {
            e = e || window.event;
            if (e.preventDefault)
                e.preventDefault();
            e.returnValue = false;
        }
    };
});
于 2013-01-24T15:32:20.230 に答える
0

これらの答えはあなたが望んでいたものではないようです。私はここに来て同じ質問をし、もっと簡単な方法を探しましたが、これはやらなければならないようです:

//When scrolling, execute the "Lock Direction" function lockdir()
<body onscroll="lockdir()">

体の中に(または頭も機能すると思いますが)、次のスクリプトを追加します。

<script>

    //Scroll Variables 
    var scr = {
        initPos: [0, 0],    //Initial Mouse Position
        cPos: [0, 0],       //Current Mouse Position
        locked: 0,          //A direction is locked
        timeout: 0,         //Scroll timeout counter
    }


    //Lock Direction Function
    function lockdir(){
        scr.timeout = 0;    //Keep scroll counter at 0 while scrolling

        //Get the current mouse position and find difference to initial position
        scr.cPos = [
            document.body.scrollTop, 
            document.body.scrollLeft
        ];
        var dif = [
            Math.abs(cPos[0] - scr.initPos[0]),
            Math.abs(cPos[1] - scr.initPos[1])
        ];


        //If no direction is locked (0), lock direction moved least when scrolling started
        if (scr.locked === 0){

            if (dif[1] > dif[0]){
                scr.locked = 2;     //Lock Vertical Scrolling
            }else{
                scr.locked = 1;     //Lock Horizontal Scrolling
            }

        }


        //Reset Locked Direction to initial value
        if (scr.locked === 1){
            document.body.scrollLeft = scr.initPos[1];
        }else{
            document.body.scrollTop = scr.initPos[0];
        }

    }

    //Cancels Lock if timer exceeds 20 milliseconds
    function cancelLock(){
        if (scr.timeout > 20){
            scr.locked = 0;
            scr.initPos = scr.cPos;
        }

        scr.timeout++;
    }

    window.setInterval(cancelLock, 1);  //Repeats cancel lock
</script>
于 2019-05-23T16:49:29.930 に答える