あなたの毎日の仕事で最もよく使われるプラグインは何ですか?jQurey?レイジーロード?ただし、これらはすべて PC 側のものですが、モバイル側で最もよく使用されるプラグインは iScroll とは何ですか?また、どのように使用する必要がありますか? iScroll は非常に強力なプラグインですが、私は表面的にしか理解していません。ここで簡単に紹介します。
iScroll の生成:
iScroll は、iPhone や Android モバイル デバイスなどのモバイル Webkit ブラウザーのために完全に作成されました。
iScroll の使用方法:
iScroll の原理は、外側の層にオーバーフロー非表示 (overflow:hidden;) DOM があり、この領域の最初の DOM 構造がインスタンス化され、ラップされたコンテンツを垂直または水平にスクロールできるというものです。 iScroll を使用する場合は、スクロール要素をできるだけシンプルにして、DOM の数を減らし、ネストを減らす必要があります。DOM 構造が複雑になればなるほど、iScroll の実行が難しくなり、問題が発生する可能性があります。ノードが異常に表示されます。 したがって、推奨される DOM 構造は次のとおりです:
<div id="wrapper">//overflow:hidden; <ul> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden。 <li>1</li> <li>2</li> <li>3</li> </ul> </div>
注: 繰り返しますが、スクロール用にインスタンス化できるのはラッパー内の最初の子要素 (ul) のみであり、スクロールは外側の DOM (ラッパー) と組み合わせて実行する必要があります。
ラッパー内に複数の ul がある場合はどうなりますか?これは非常に簡単な文であることを思い出してください。ラッパー内の最初の子要素 (ul) のみがインスタンス化され、スクロールされます。
<div id="wrapper">//overflow:hidden; <div id="first"> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <ul> <li>4</li> <li>5</li> <li>6</li> </ul> </div> </div>
var myScroll = new iScroll("wrapper");
iScroll をインスタンス化する方法:
インスタンス化について話しましたが、いつインスタンス化すればよいでしょうか?インスタンス化には多くの方法があると言われていますが、私はそれを使用したことがありません。 の 1 つだけを説明します。
(1) HTML (uw3c.html) ページの下部 (body の後、html の前) に現在のページの iscroll.js と uw3c.js をロードし、HTML の DOM 構造がロードできることを確認します。
(2) JS がページ DOM 構造とデータを挿入する前に iScroll をインスタンス化します。つまり、JS の先頭でインスタンス化します。これにより、JS は後で DOM またはデータを挿入するために使用されるため、データを挿入する前に iScroll がインスタンス化されることが保証されます。 。
<html > <body> ...code... </body> //插入iscroll.js文件 <script type="text/javascript" src="js/iscroll.js" > </script > //插入本页面JS文件 <script type="text/javascript" src="js/uw3c.js" > </script > </html>
var myscroll; function iscroll(data){ //实例化iScroll myscroll=new iScroll("wrapper"); pageData(data); } function pageData(obj){ $("body").html(obj); myscroll.refresh();//当DOM结构发生变化的时候,需要刷新iScroll } iscroll("<div>pagedata</div>");
iScroll をインスタンス化する場合、2 つのパラメーターを渡すことができます。最初のパラメーターはインスタンス化された外部 DOM の ID で、2 番目のパラメーターは iScroll 実行メソッドのオブジェクトです。
var myscroll=new iScroll("wrapper",{hScrollbar:false}); 或者 var opts = { vScroll:false,//禁止垂直滚动 snap:true,//执行传送带效果 hScrollbar:false//隐藏水平方向上的滚动条 }; var myscroll = new iScroll("wrapper",opts);
hScroll false 禁止横向滚动 true横向滚动 默认为true vScroll false 禁止垂直滚动 true垂直滚动 默认为true hScrollbar false隐藏水平方向上的滚动条 vScrollbar false 隐藏垂直方向上的滚动条 fadeScrollbar false 指定在无渐隐效果时隐藏滚动条 hideScrollbar 在没有用户交互时隐藏滚动条 默认为true bounce 启用或禁用边界的反弹,默认为true momentum 启用或禁用惯性,默认为true,此参数在你想要保存资源的时候非常有用 lockDirection false取消拖动方向的锁定,true拖动只能在一个方向上(up/down 或者left/right)
もちろん、2 番目のパラメータには、実行できるメソッドもいくつかあります。
(1)scrollTo(x, y, time,relative)メソッド:X軸のスクロール距離、Y軸のスクロール距離、効果時間、現在位置からの相対かどうかの4つのパラメータを渡します。たとえば:
//在200毫秒的时间内,Y轴向上滚动100像素; uw3c.scrollTo(0, -100, 200) //在200毫秒的时间内,相对于当前位置,X轴向左滚动100像素; uw3c.scrollTo(-100, 0, 200, true)
uw3c.refresh();//刷新iScroll
onPosChange:function(x,y){ if(y < -200){ //如果Y周向上滚动200像素,$("#uw3c")就显示,否则就隐藏。 $("#uw3c").show(); }else{ $("#uw3c").hide(); } }
//滚动结束后,执行的方法,滚动后会出现提示框alert("uw3c.com") onScrollEnd:function(){ alert("uw3c.com"); }
(6) onBeforeScrollStart: スクロールを開始する前の時間コールバック。デフォルトでは、ブラウザのデフォルト動作が防止されます。
(7) onScrollStart: スクロールを開始するコールバック。
(8) onBeforeScrollMove: コンテンツが移動する前のコールバック。
(9) onScrollMove: コンテンツ移動のコールバック。
(10) onBeforeScrollEnd: スクロール終了前のコールバック。
(11) onTouchEnd: 手が画面から離れた後のコールバック。
(12) onDestroy: インスタンスを破棄するコールバック。