0

モバイル Web サイトにオーバーフロー スクロール要素が必要ですが、たとえば、Android のいくつかのバージョンではそれらを処理できません。

このコードは、タッチ スクロールを有効にします。

function touchScroll(id){
            if(isTouchDevice()){ //if touch events exist...
                var el=document.getElementById(id);
                var scrollStartPos=0;
                document.getElementById(id).addEventListener("touchstart", function(event) {
                    scrollStartPos=this.scrollTop+event.touches[0].pageY;
                    event.preventDefault();
                },false);

                document.getElementById(id).addEventListener("touchmove", function(event) {
                    this.scrollTop=scrollStartPos-event.touches[0].pageY;
                    event.preventDefault();
                },false);
            }
        }
        touchScroll('cHolder');

テストしたところ、#cHolder で動作します。しかし、クラスで機能するように、どのように変更する必要がありますか (jquery 構文を使用してもかまいません)。レイアウトにこのようなコンテナが複数あるということです

何かご意見は?

4

2 に答える 2

1

このようなものがうまくいくはずです。

function touchScroll(id) {
    if (isTouchDevice()) { //if touch events exist...
        var els = document.getElementsByClassName(id);
        var scrollStartPos = 0;
        for (var i = 0; i < els.length; i++) {
            els[i].addEventListener("touchstart", function (event) {
                scrollStartPos = this.scrollTop + event.touches[0].pageY;
                event.preventDefault();
            }, false);

            els[i].addEventListener("touchmove", function (event) {
                this.scrollTop = scrollStartPos - event.touches[0].pageY;
                event.preventDefault();
            }, false);
        }
    }
}
touchScroll('cHolder');
于 2013-07-02T07:53:50.790 に答える
0

var el=document.getElementById(id)まあ、 jQuery 構文に置き換えることができます。

var el = $(id).get(0);

実際に jQuery セレクターを作成し、DOM オブジェクトをフェッチします。

document.getElementById(id)次に、5行目と9行目を次のように置き換えることをお勧めしますel

次に、任意のセレクターを関数に渡すと、その要素が取得されます!

于 2013-07-02T07:52:40.317 に答える