jQuery 之 元素節點操作 & 滾輪事件與函數節流

元素節點操作

  • 創建節點

    var $div = $('<div>');
    var $div2 = $('<div>這是一個div元素</div>');
    
  • 插入節點

    • 1、append()和appendTo():在現存元素的內部,從后面插入元素

      var $span = $('<span>這是一個span元素</span>');
      $('#div1').append($span);
      ......
      <div id="div1"></div>
      
    • 2、prepend()和prependTo():在現存元素的內部,從前面插入元素

    • 3、after()和insertAfter():在現存元素的外部,從后面插入元素

    • 4、before()和insertBefore():在現存元素的外部,從前面插入元素

  • 刪除節點 : $('#div1').remove();

  • todolist(計劃列表)實例

滾輪事件與函數節流

  • jquery.mousewheel插件使用

    • jquery中沒有鼠標滾輪事件,原生js中的鼠標滾輪事件不兼容,可以使用jquery的滾輪事件插件jquery.mousewheel.js。
  • 函數節流

    • javascript中有些事件的觸發頻率非常高,比如onresize事件(jq中是resize),onmousemove事件(jq中是mousemove)以及上面說的鼠標滾輪事件,在短事件內多處觸發執行綁定的函數,可以巧妙地使用定時器來減少觸發的次數,實現函數節流。
  • 整屏滾動實例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>整頁滾動</title>
        <link rel="stylesheet" type="text/css" href="css/test.css">
        <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
        <script type="text/javascript" src="js/jquery.mousewheel.js"></script>
        <script type="text/javascript">
            $(function(){
    
                var $h = $(window).height();
                var $pages = $('.pages');
                $pages.css({height:$h});
                var $points = $('.points li');
                var nowscreen = 0;
                var timer = null;
    
                $pages.eq(0).addClass('moving');
    
                $(window).mousewheel(function(ev,dat){
    
                    clearTimeout(timer);
    
                    timer = setTimeout(function(){
    
                    if(dat==-1)
                    {
                        nowscreen++;
                    }
                    else
                    {
                        nowscreen--;
                    }
    
                    if(nowscreen<0)
                    {
                        nowscreen=0;
                    }
    
                    if(nowscreen>4)
                    {
                        nowscreen=4
                    }
                    $('.pages_con').animate({top:-nowscreen*$h},300);
                    $pages.eq(nowscreen).addClass('moving').siblings().removeClass('moving');
                    $points.eq(nowscreen).addClass('active').siblings().removeClass('active');
                    },200)              
                })
    
                $points.click(function(event) {
                    var nowindex = $(this).index();
                    $('.pages_con').animate({top:-nowindex*$h},300);
                    $pages.eq(nowindex).addClass('moving').siblings().removeClass('moving');
                    $points.eq(nowindex).addClass('active').siblings().removeClass('active');
                });
            })
        </script>   
    </head>
    <body>
        <div class="pages_con">
    
            <div class="pages page1">
                <div class="main_con">
                    <div class="left_img"><img src="images/001.png"></div>
                    <div class="right_info">
                    Web前端開發是從網頁制作演變而來的,名稱上有很明顯的時代特征。在互聯網的演化進程中,網頁制作是Web1.0時代的產物,那時網站的主要內容都是靜態的,用戶使用網站的行為也以瀏覽為主。
                        
                    </div>
                </div>
            </div>
    
            <div class="pages page2">
                <div class="main_con">
                    <div class="right_img"><img src="images/002.png"></div>
                    <div class="left_info">
                    2005年以后,互聯網進入Web2.0時代,各種類似桌面軟件的Web應用大量涌現,網站的前端由此發生了翻天覆地的變化。網頁不再只是承載單一的文字和圖片,各種富媒體讓網頁的內容更加生動,網頁上軟件化的交互形式為用戶提供了更好的使用體驗,這些都是基于前端技術實現的。
                    </div>
                </div>
                
            </div>
    
            <div class="pages page3">
                <div class="main_con">
                    <div class="left_img"><img src="images/004.png"></div>
                    <div class="right_info">
                    以前會Photoshop和Dreamweaver就可以制作網頁,現在只掌握這些已經遠遠不夠了。無論是開發難度上,還是開發方式上,現在的網頁制作都更接近傳統的網站后臺開發,所以現在不再叫網頁制作,而是叫Web前端開發。
    
                        
                    </div>
                </div>          
            </div>
    
            <div class="pages page4">
                <div class="main_con">
                    <div class="left_img"><img src="images/003.png"></div>
                    <div class="right_info">
                        Web前端開發在產品開發環節中的作用變得越來越重要,而且需要專業的前端工程師才能做好,這方面的專業人才近幾年來備受青睞。Web前端開發是一項很特殊的工作,涵蓋的知識面非常廣,既有具體的技術,又有抽象的理念。簡單地說,它的主要職能就是把網站的界面更好地呈現給用戶。
                    </div>
                </div>          
            </div>
    
            <div class="pages page5">
                <div class="main_con">
                    <div class="center_img"><img src="images/005.png"></div>        
                </div>
                
            </div>
        </div>
        <ul class="points">
            <li class="active"></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </body>
    </html>
    
  • 幻燈片動畫

      $(function(){
          
          var $li = $('.slide_pics li');
          var len = $li.length;
          var $prev = $('.prev');
          var $next = $('.next');
    
    
          //將要運動過來的li
          var nowli = 0;
    
          //當前要離開的li
          var prevli = 0;
    
          var timer = null;
    
    
    
          $li.not(':first').css({left:760});
    
          $li.each(function(index){
    
              var $sli = $('<li>');
    
              if(index==0)
              {
                  $sli.addClass('active');
              }
    
              $sli.appendTo('.points')
    
          })
    
          $points = $('.points li');
    
    
          $points.click(function(){
              nowli = $(this).index();
    
              if(nowli==prevli){
                  return;
              }
    
              move();
              $(this).addClass('active').siblings().removeClass('active');
          });
    
    
          $prev.click(function(){
              nowli--;
              move();
              $points.eq(nowli).addClass('active').siblings().removeClass('active');  
    
          })
    
          $next.click(function(){
              nowli++;
              move();
              $points.eq(nowli).addClass('active').siblings().removeClass('active');  
    
          })
    
          $('.slide').mouseenter(function() {
              clearInterval(timer);
          });
    
          $('.slide').mouseleave(function() {
              timer = setInterval(autoplay,1500);
          });
    
    
    
          timer = setInterval(autoplay,1500);
    
          function autoplay(){
              nowli++;
              move();
              $points.eq(nowli).addClass('active').siblings().removeClass('active');
          }
    
    
          function move(){
    
              if(nowli<0)
              {
                  nowli = len-1;
                  prevli = 0;
                  $li.eq(nowli).css({left:-760});
                  $li.eq(prevli).stop().animate({left:760});
                  $li.eq(nowli).stop().animate({left:0});
                  prevli=nowli;
                  return;
              }
    
              if(nowli>len-1)
              {
                  nowli = 0;
                  prevli = len-1;
                  $li.eq(nowli).css({left:760});
                  $li.eq(prevli).stop().animate({left:-760});
                  $li.eq(nowli).stop().animate({left:0});
                  prevli=nowli;
                  return;
              }
    
    
    
              if(nowli>prevli){
    
                  $li.eq(nowli).css({left:760});
                  $li.eq(prevli).stop().animate({left:-760});         
              }
              else
              {
                  $li.eq(nowli).css({left:-760});
                  $li.eq(prevli).stop().animate({left:760});
                          
              }
    
              $li.eq(nowli).stop().animate({left:0});
              prevli=nowli;   
          }
      })
    
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內容