jQueryの置換/複製

1.置換/クローン:

 クローン:var $ newImg = $ img.clone()

2.イベント:

 標準: 

  1.通常のバインディング:$()。On( "event name"、function(){...})

               .addEventListener(...);

       バインド解除:$()。オフ( "イベント名"、元の関数オブジェクト)

  2.バブリングを使用します。 

    $ parent.on( "イベント名"、 "判定条件セレクター"、function(){

      this-> e.target

    })

    2つの利点:
1.「判定条件セレクター」を自動的に使用して、関数の実行に入る前に条件を満たす要素をフィルターします。

        2. eとe.targetを書かずにthis-> e.targetを変更します

 

 21の一般的なイベントは、省略形で提供されます:$()。イベント名(ハンドラー関数)

 

 ページが読み込まれた後、次を実行します。 

  1. DOMコンテンツが読み込まれた後、事前にのみ実行:DOMContentLoaded

    DOMコンテンツのみを待つ:HTMLおよびJS

    実行可能:イベントバインディング、要素のコンテンツの追加/削除/トラバース/変更

    実行できません:CSSの取得/変更、画像サイズの取得

    方法:$(ドキュメント).ready(関数(){...})

           $()。ready(function(){...})

             $(function(){...})

    概要:ほとんどすべてのjQueryコードは$(function(){...})に配置する必要があります

  2.すべてのページコンテンツが読み込まれた後、それだけを実行します:window.onload

    すべてのWebコンテンツを待ちます:HTML、CSS、JS、画像

    すべての実行可能ファイル

    方法:$(ウィンドウ).load(関数(){...})

    概要:CSSと画像に依存するコードのみが$(ウィンドウ).load()に配置されます

 

 マウスイベント: 

  マウスオーバーマウスアウトの問題: 

   子要素の頻繁な出入りもバブルして、親要素でマウスイベントをトリガーします

  jQueryはmouseenterとmouseleaveに置き換えられました

   利点:子要素の出入りが頻繁であっても、親要素でマウスイベントをトリガーするためにバブルしません。

   mouseenterとmouseleaveを同時にバインドする場合、ホバーをバインドするだけで済みます。 

    $()。hover(// mouseenter + mouseleave

  function(){...}、//给mouseenter

      function(){...} //给mouseleave

    )

    2つの処理関数が1つの処理関数にマージされた場合、実際には、1つの処理関数を記述します。

 

 アナログトリガー:ボタン処理機能は、ボタンをクリックすることなく、コードを2回記述することなく実行できます。

   $(btn).trigger( "事件名")$(btn).trigger( "クリック")

  実際、次のように省略できます:$(btn).click()

 

3.アニメーション: 

 1.シンプルなアニメーション:死者を書くことの3つの固定アニメーション効果:

   1.非表示を表示:.show().hide().toggle()

     パラメータなしの場合、display:block / noneがデフォルトで使用され、ディスプレイの非表示、瞬間的な変更、アニメーション効果なしを制御します

     期間パラメータを指定します:.show(ms).hide(ms).toggle(ms)

   2.上下にスライド:.slideUp(ms).slideDown(ms).slideToggle()

   3.フェードインおよびフェードアウト:.fadeIn(ms).fadeOut(ms).fadeToggle()

   質問1:jsコードでデッドコードを記述することの影響は維持できません

   質問2:jsタイマーによって実現されるアニメーション効果は、cssアニメーションほど効率的ではありません

 2.ユニバーサルアニメーション:css属性にアニメーション効果を実装できます

   $().animate({

     css属性:目标值,

        ... : ...

   },持续ms)

   强调: 只支持单个数值的属性

         不支持:不是数值的属性

                不支持颜色渐变——不如transition

   

   排队和并发:

排队: 多个css属性先后依次变化

    并发: 多个css属性同时变化

      放在一个animate函数内的多个css属性是并发变化

 

   停止动画: $().stop();

     问题: 默认只能停止队列中正在播放的一个动画,后续动画依然会执行

     解决: $().stop(true) 停止当前动画并清空队列

   

   选择器:  :animated 选择和判断正在播放动画的元素

 

   动画播放后执行: 

    每个动画API都有最后一个参数——回调函数

    回调函数会在动画播放后自动调用执行

 

 总结: 首选CSS: 效率高,可维护

       和交互有关的动画,只能用JS定时器/JQUERY

       和动态添加/删除DOM元素有关的动画,也必须用JS定时器/jQuery

 

4. 类数组操作: 

 2个API:

 1. 遍历: 

  //实例方法

  $()->jQuery()->new jQuery()

  $().each(function(i,elem){ //forEach(function(elem,i,arr))

//i 获得当前位置

    //elem 获得当前元素对象

  })

  //静态方法

  //$->jQuery

  $.each(类数组对象/数组,function(i,elem){

  })

 2. 查找: 

  $("所有元素").index("要找的元素")

  在"所有元素"的jQuery对象中,查找"要找的元素"的位置

  如果在同一个父元素下找子元素的位置: 

    $(要找的子元素).index()

 

5. 添加自定义API:

 其实就是在jQuery的原型对象中添加自定义函数: 

  jQuery.fn=jQuery.prototype

  定义新函数: 

  jQuery.fn.新函数=function(){

 

  }

  调用新函数:

  $(...).新函数()

おすすめ

転載: www.cnblogs.com/sna-ling/p/12728730.html