3

Web サイトのページがあり、ページのタッチ イベントの本文に追加しました。より正確には、右にスワイプして左にスワイプします。イベントリスナーがページの本文に追加されたので、event.preventDefault(); を追加しました。もうページをスクロールできません。

ブラウザでページをスクロールするにはどうすればよいですか?

PSコードは純粋なjavascript /ライブラリに依存しません。

#1を編集します。モバイルで表示されるこのサイトは、http://swipejs.com/を実行しているようです。タブを左右にスライドさせたり、ウェブサイトをスクロールしたりします。私はコードでどのように見ることができません:(

4

3 に答える 3

1

iscrollプラグインを使用します。それはあなたの助けになります。

例を参照してください:http://cubiq.org/dropbox/iscroll4/examples/simple/

于 2012-12-02T02:24:59.940 に答える
0

残念ながら、簡単な答えはありません。最良の方法は、スマートジェスチャレコグナイザーを構築することです。または、次のようなものを使用します(Safari Mobileの場合):

http://mud.mitplw.com/JSGestureRecognizer/#single-gesture

ジェスチャレコグナイザに触れているときは、スクロールがないことに気付くでしょう。ただし、レコグナイザーのコールバックでページをスクロールさせることはできます。

なぜSafariモバイルをサポートしているだけだと言っているのだろうか?これは、Safariモバイルには独自のタッチイベントのセットがあるためです。ただし、これを出発点として使用し、他のプラットフォームのサポートを追加してみることができます。

于 2012-12-02T01:02:21.147 に答える
0

「preventDefault()」なしでスワイプするのと同じ問題があります。pulltorefresh の効果を達成したいので、pullup ではなく、pulldown イベントのみを防ぐことができます。このようなコード:

function touchBindMove(evt){
    //evt.preventDefault();
    try{
        var deviceHeight = window.innerHeight;
        var touch = evt.touches[0]; //获取第一个触点  
        var x = Number(touch.pageX); //页面触点X坐标  
        var y = Number(touch.pageY); //页面触点Y坐标  
        //记录触点初始位置  

        if((y - offsetStart) > 0 && document.body.scrollTop == 0){
            evt.preventDefault();
            var page = document.getElementsByClassName('tweet-page')[0];
            var rate = 0;

            end = x;
            offsetEnd = y;
            rate = (offsetEnd - offsetStart) / (2 * deviceHeight);

            //tool.print(rate);
            easing.pullMotion(page, rate);
        }

    }catch(e){
        alert(e.message);
    }
}

「y - offsetStart」はイベントがプルダウンかどうかを判断し、「document.body.scrollTop == 0」はスクロールバーが中央にあるかどうかを判断します。多分それはあなたを少し助けることができます。

于 2013-06-07T10:09:46.140 に答える