2

これが私がそれを呼ぶ方法です

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);

/**/
$(document).ready(function() {
    //Created an array for adding n iScroll objects
    var myScroll = new Array();

    $('.content').each(function(){
        if($(this).attr('id')==null){
            $(this).attr('id') = $(this).attr('class');
        }
        id = $(this).attr('id');
        console.log(id);
        $(this).html('<div class="scroller">'+$(this).html()+'</div>');
        myScroll.push(new iScroll(id));
    });
});

id だけでなく、クラスでも使用できるように少し変更しました。

コンテナとそのコンテンツをドラッグできるため、機能するようです(有効になる)(ただし、位置を保持せず、マウスを離すと復元されます)

それが起こっているのを見たい場合は、http://toniweb.us/granoにアクセスして、メニューの任意の項目をクリックしてください。新しく表示されたものが効果を発揮します。

なぜそれが機能しているのに期待どおりではないのか考えていますか?

これを行う理由は、コンテナーには、コンテンツの選択に応じて非表示または表示されるいくつかのサブコンテナーがあるためです。

CSS:

#nvl1{
    padding:0px 25px;
    z-index:10;
    position:absolute;
    left:0px;
    background:url("../img/fondoNivel2.jpg") no-repeat scroll right 0 #79797B ; 
    height:100%;
}



#nvl1 .content{
        width:650px;
        z-index:11;
        display:none;
        color:#6666b6b;
        position:relative;
        line-height:30px;
    }
4

4 に答える 4

4

私はあなたのコードを見てみました:http://toniweb.us/grano

あなたがやりたいのは、クラスで「スクロール」を使ってiScrollを使用することだと思います。これは、次のコードで行っていることではありませんが、実際には、スクローラーDIVの親を使用するようにiScrollを設定しています。

id = $(this).attr('id');
$(this).html('<div class="scroller">'+$(this).html()+'</div>');
myScroll.push(new iScroll(id));

参考:iScrollはクラスではなくIDを使用します

これがもたらす影響は、直後のブロックレベル要素であるスクローラーDIVに「スナップ」効果を引き起こしていることです。

いくつかの(ブロックレベルの)LIを含むOLを含むDIV(id = "scroller")があるこの例を考えてみましょう。

http://cubiq.org/dropbox/iscroll4/examples/simple/

簡単に言うと、スクローラークラスを使用してDIVにIDを指定し、代わりにそこからiScrollを作成します。

于 2011-11-25T23:00:04.510 に答える
0

スクロール div 内の要素をフローティングにすることはできません。それらがフローティングしていてクリアされていない場合、ページの流れは、スクロール div が正しい高さではないことを意味します。スクロールと div 内のフロートを避けて、それがどうなるかを確認してください。これが私にとっての問題でした。

また、間違ったdivでiscrollを呼び出していたので、マシューズの回答が役立つこともわかりました。iScroll の例で紛らわしいのは、ID スクローラーを使用して div で iScroll が呼び出されると想定しがちですが、ラッパー div で呼び出されることです。ID スクローラーを使用した div は、実際には ID を必要としません。例として、これがなくてもより明確になると思います。例えば

<div id="wrapper">
    <div>
         <p>Whatever you want here</p>
         <ul>
             <li>1</li>
         </ul>
    </div>
</div>
...
myScroll = new iScroll('wrapper');
于 2011-12-29T15:02:30.010 に答える
0

あなたはただしたくないですか:

.content {overflow-y:scroll;}

それはあなたが言っていることではありませんか?

于 2011-11-22T23:12:57.203 に答える
0

スクローラーを配置するタグstyleにを設定した場合(例)div

style="position:relative;overflow: hidden;height:350px;

ドラッグの問題を解決する必要があるのは、高さを明示的に設定していると思います

于 2011-11-17T13:00:21.893 に答える