【jQuery筆記】20200617

jQuery事件委託

  1. 什麼是事件委託

​ 請別人幫忙做事情,然後將做完的結果反饋給我們

在jQuery中,如果通過核心函數找到的元素不止一個,那麼在添加事件的時候,jQuery會遍歷所有找到的元素,給所有找到的元素添加事件。

jQuery移入移出事件

mouseover/mouseout事件,子元素被移入移出也會觸發父元素的事件

mouseenter/mouserleave事件,子元素被移入移出不會觸發父元素的事件(推薦使用)

電影排行榜案例

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 07:21:47
 * @LastEditTime: 2020-06-17 08:59:25
 * @FilePath: \代碼\35-電影排行榜下.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>35-電影排行榜下</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .box {
        width: 300px;
        height: 450px;
        margin: 50px auto;
        border: 1px solid #000;
      }
      .box > h1 {
        font-size: 20px;
        line-height: 35px;
        color: deeppink;
        padding-left: 10px;
        border-bottom: 1px dashed #ccc;
      }
      ul > li {
        list-style: none;
        padding: 5px 10px;
        border: 1px dashed #ccc;
      }
      ul > li:nth-child(-n + 3) span {
        background: deeppink;
      }
      ul > li > span {
        display: inline-block;
        width: 20px;
        height: 20px;
        background: #ccc;
        text-align: center;
        line-height: 20px;
        margin-right: 10px;
      }
      .content {
        overflow: hidden;
        margin-top: 5px;
        display: none;
      }
      .content > img {
        width: 80px;
        height: 120px;
        float: left;
      }
      .content > p {
        width: 180px;
        height: 120px;
        float: right;
        font-size: 12px;
        line-height: 20px;
      }
      .current .content {
        display: block;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        /*
        // 1. 監聽鼠標移入事件
        $("li").mouseenter(function () {
          $(this).addClass("current");
        });

        // 2. 監聽鼠標移出事件
        $("li").mouseleave(function () {
          $(this).removeClass("current");
        });
        */

        $("li").hover(
          function () {
            $(this).addClass("current");
          },
          function () {
            $(this).removeClass("current");
          }
        );
      });
    </script>
  </head>
  <body>
    <div class="box">
      <h1>電影排行榜</h1>
      <ul>
        <li>
          <span>1</span>電影名稱
          <div class="content">
            <img src="images/ysqwl.jpg" alt="" />
            <p>
              天聖八年,歲在庚午。是夜,許府中,下人發現員外離奇倒地身亡。前來尋員外的許夫人神情呆滯,居然同一美豔女子在屋內翩翩起舞。曲終,此女在衆人眼前瞬間消失。怪事一出,開封府派捕快拾生破案。拾生髮現許員外竟是中毒而亡,而後從夫人處得知那女子的身世,她就是二十二年前聽雨樓中名噪一時的歌妓謝曉菀,但已故去多年。
              調查陷入僵局,一切線索都直指謝曉菀,拾生毫無頭緒。爲安撫民心,他打算快速偵破案件,遂入隱市向白青蘿求助。藥婆白青蘿有一個靈鼻子,它能聞辨百毒,拾生想借此“聞香探案”。
              避世多時的白青蘿會輕易同意嗎?許府裏又藏着怎樣的祕密......
            </p>
          </div>
        </li>
        <li>
          <span>2</span>電影名稱
          <div class="content">
            <img src="images/ysqwl.jpg" alt="" />
            <p>
              天聖八年,歲在庚午。是夜,許府中,下人發現員外離奇倒地身亡。前來尋員外的許夫人神情呆滯,居然同一美豔女子在屋內翩翩起舞。曲終,此女在衆人眼前瞬間消失。怪事一出,開封府派捕快拾生破案。拾生髮現許員外竟是中毒而亡,而後從夫人處得知那女子的身世,她就是二十二年前聽雨樓中名噪一時的歌妓謝曉菀,但已故去多年。
              調查陷入僵局,一切線索都直指謝曉菀,拾生毫無頭緒。爲安撫民心,他打算快速偵破案件,遂入隱市向白青蘿求助。藥婆白青蘿有一個靈鼻子,它能聞辨百毒,拾生想借此“聞香探案”。
              避世多時的白青蘿會輕易同意嗎?許府裏又藏着怎樣的祕密......
            </p>
          </div>
        </li>
        <li>
          <span>3</span>電影名稱
          <div class="content">
            <img src="images/ysqwl.jpg" alt="" />
            <p>
              天聖八年,歲在庚午。是夜,許府中,下人發現員外離奇倒地身亡。前來尋員外的許夫人神情呆滯,居然同一美豔女子在屋內翩翩起舞。曲終,此女在衆人眼前瞬間消失。怪事一出,開封府派捕快拾生破案。拾生髮現許員外竟是中毒而亡,而後從夫人處得知那女子的身世,她就是二十二年前聽雨樓中名噪一時的歌妓謝曉菀,但已故去多年。
              調查陷入僵局,一切線索都直指謝曉菀,拾生毫無頭緒。爲安撫民心,他打算快速偵破案件,遂入隱市向白青蘿求助。藥婆白青蘿有一個靈鼻子,它能聞辨百毒,拾生想借此“聞香探案”。
              避世多時的白青蘿會輕易同意嗎?許府裏又藏着怎樣的祕密......
            </p>
          </div>
        </li>
        <li>
          <span>4</span>電影名稱
          <div class="content">
            <img src="images/ysqwl.jpg" alt="" />
            <p>
              天聖八年,歲在庚午。是夜,許府中,下人發現員外離奇倒地身亡。前來尋員外的許夫人神情呆滯,居然同一美豔女子在屋內翩翩起舞。曲終,此女在衆人眼前瞬間消失。怪事一出,開封府派捕快拾生破案。拾生髮現許員外竟是中毒而亡,而後從夫人處得知那女子的身世,她就是二十二年前聽雨樓中名噪一時的歌妓謝曉菀,但已故去多年。
              調查陷入僵局,一切線索都直指謝曉菀,拾生毫無頭緒。爲安撫民心,他打算快速偵破案件,遂入隱市向白青蘿求助。藥婆白青蘿有一個靈鼻子,它能聞辨百毒,拾生想借此“聞香探案”。
              避世多時的白青蘿會輕易同意嗎?許府裏又藏着怎樣的祕密......
            </p>
          </div>
        </li>
        <li>
          <span>5</span>電影名稱
          <div class="content">
            <img src="images/ysqwl.jpg" alt="" />
            <p>
              天聖八年,歲在庚午。是夜,許府中,下人發現員外離奇倒地身亡。前來尋員外的許夫人神情呆滯,居然同一美豔女子在屋內翩翩起舞。曲終,此女在衆人眼前瞬間消失。怪事一出,開封府派捕快拾生破案。拾生髮現許員外竟是中毒而亡,而後從夫人處得知那女子的身世,她就是二十二年前聽雨樓中名噪一時的歌妓謝曉菀,但已故去多年。
              調查陷入僵局,一切線索都直指謝曉菀,拾生毫無頭緒。爲安撫民心,他打算快速偵破案件,遂入隱市向白青蘿求助。藥婆白青蘿有一個靈鼻子,它能聞辨百毒,拾生想借此“聞香探案”。
              避世多時的白青蘿會輕易同意嗎?許府裏又藏着怎樣的祕密......
            </p>
          </div>
        </li>
        <li>
          <span>6</span>電影名稱
          <div class="content">
            <img src="images/ysqwl.jpg" alt="" />
            <p>
              天聖八年,歲在庚午。是夜,許府中,下人發現員外離奇倒地身亡。前來尋員外的許夫人神情呆滯,居然同一美豔女子在屋內翩翩起舞。曲終,此女在衆人眼前瞬間消失。怪事一出,開封府派捕快拾生破案。拾生髮現許員外竟是中毒而亡,而後從夫人處得知那女子的身世,她就是二十二年前聽雨樓中名噪一時的歌妓謝曉菀,但已故去多年。
              調查陷入僵局,一切線索都直指謝曉菀,拾生毫無頭緒。爲安撫民心,他打算快速偵破案件,遂入隱市向白青蘿求助。藥婆白青蘿有一個靈鼻子,它能聞辨百毒,拾生想借此“聞香探案”。
              避世多時的白青蘿會輕易同意嗎?許府裏又藏着怎樣的祕密......
            </p>
          </div>
        </li>
      </ul>
    </div>
  </body>
</html>

TAB選項卡案例

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 09:01:22
 * @LastEditTime: 2020-06-17 10:49:18
 * @FilePath: \代碼\38-TAB選項卡終極.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>38-TAB選項卡終極</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .box {
        width: 440px;
        height: 298px;
        border: 1px solid #000;
        margin: 50px auto;
      }
      .nav {
        height: 50px;
      }
      .nav > li {
        list-style: none;
        width: 110px;
        height: 50px;
        background: orange;
        text-align: center;
        line-height: 50px;
        float: left;
      }
      .nav > .current {
        background: #ccc;
      }
      .content li {
        list-style: none;
        width: 440px;
        height: 250px;
        display: none;
      }
      /* .content li div {
        width: 440px;
        height: 250px;
        display: none;
      } */
      .content .show {
        display: block;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        // 1. 監聽選項卡的移入事件
        $(".nav>li").mouseenter(function () {
          // 1.1 修改被移入選項卡的背景顏色
          $(this).addClass("current");
          // 1.2 還原其他兄弟選項卡的背景顏色
          $(this).siblings().removeClass("current");
          // 1.3 獲取當前移入選項卡的索引
          var $index = $(this).index();
          // 1.4 根據索引找到對應的圖片
          var $li = $(".content li").eq($index);
          // 1.5 隱藏非當前的其他圖片
          $li.siblings().removeClass("show");
          // 1.6 顯示找到的圖片
          $li.addClass("show");
        });
      });
    </script>
  </head>
  <body>
    <div class="box">
      <ul class="nav">
        <li class="current">H5+C3</li>
        <li>jQuery</li>
        <li>C語言</li>
        <li>Go語言</li>
      </ul>
      <ul class="content">
        <li class="show" style="background: red;"></li>
        <li style="background: blue;"></li>
        <li style="background: yellow;"></li>
        <li style="background: green;"></li>
      </ul>
    </div>
  </body>
</html>

jQuery顯示和隱藏動畫

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>39-jQuery顯示和隱藏動畫</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 200px;
        height: 200px;
        background: red;
        display: none;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        $("button")
          .eq(0)
          .click(function () {
            // $("div").css("display", "block");
            $("div").show(1000, function () {
              alert("顯示動畫執行完畢");
            });
          });
        $("button")
          .eq(1)
          .click(function () {
            // $("div").css("display", "none");
            $("div").hide(1000, function () {
              alert("隱藏動畫執行完畢");
            });
          });
        $("button")
          .eq(2)
          .click(function () {
            $("div").toggle(1000, function () {
              alert("切換完畢");
            });
          });
      });
    </script>
  </head>
  <body>
    <button>顯示</button>
    <button>隱藏</button>
    <button>切換</button>
    <div></div>
  </body>
</html>

jQuery展開和收起動畫

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 11:23:57
 * @LastEditTime: 2020-06-17 11:46:00
 * @FilePath: \代碼\41-jQuery 展開和收起動畫.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>41-jQuery 展開和收起動畫</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 100px;
        height: 300px;
        background: red;
        display: none;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        $("button")
          .eq(0)
          .click(function () {
            $("div").slideDown(1000, function () {
              alert("展開完畢");
            });
          });
        $("button")
          .eq(1)
          .click(function () {
            $("div").slideUp(1000, function () {
              alert("收起完畢");
            });
          });
        $("button")
          .eq(2)
          .click(function () {
            $("div").slideToggle(1000, function () {
              alert("切換完畢");
            });
          });
      });
    </script>
  </head>
  <body>
    <button>展開</button>
    <button>收起</button>
    <button>切換</button>
    <div></div>
  </body>
</html>

摺疊菜單

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 12:21:17
 * @LastEditTime: 2020-06-17 13:19:56
 * @FilePath: \代碼\43-摺疊菜單下.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>43-摺疊菜單下</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .nav {
        list-style: none;
        width: 300px;
        margin: 100px auto;
      }
      .nav > li {
        border: 1px solid #000;
        line-height: 35px;
        border-bottom: none;
        text-indent: 2rem;
        position: relative;
      }
      .nav > li:last-child {
        border-bottom: 1px solid #000;
        border-bottom-right-radius: 5px;
        border-bottom-left-radius: 5px;
      }
      .nav > li:first-child {
        border-top-right-radius: 5px;
        border-top-left-radius: 5px;
      }
      .nav > li > span {
        display: inline-block;
        width: 32px;
        height: 32px;
        text-align: center;
        line-height: 32px;
        position: absolute;
        right: 20px;
        top: 5px;
      }
      .nav > li > span span {
        position: absolute;
        top: 0;
        left: -20px;
      }
      .sub {
        display: none;
      }
      .sub > li {
        list-style: none;
        background: mediumpurple;
        border-bottom: 1px solid #fff;
      }
      .sub > li:hover {
        background: red;
      }
      .nav .current > span {
        transform: rotate(90deg);
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        // 1. 監聽一級菜單的點擊事件、
        $(".nav>li").click(function () {
          // 1.1 拿到二級菜單
          var $sub = $(this).children(".sub");
          // 1.2 讓二級菜單展開
          $sub.slideDown(1000);
          $(this).addClass("current");
          // 1.3 拿到所有非當前的二級菜單
          var otherSub = $(this).siblings().children(".sub");
          // 1.4 讓所有非當前的二級菜單收起
          otherSub.slideUp(1000);
          $(this).siblings().removeClass("current");
        });
      });
    </script>
  </head>
  <body>
    <ul class="nav">
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>
        一級菜單<span><span>></span></span>
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
    </ul>
  </body>
</html>

下拉菜單

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 13:20:40
 * @LastEditTime: 2020-06-17 13:37:57
 * @FilePath: \代碼\44-下拉菜單.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>44-下拉菜單</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .nav {
        list-style: none;
        width: 300px;
        height: 50px;
        background: red;
        margin: 100px auto;
      }
      .nav > li {
        width: 100px;
        height: 50px;
        line-height: 50px;
        text-align: center;
        float: left;
      }
      .sub {
        list-style: none;
        background: mediumpurple;
        display: none;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        /*
            在jQuery中如果需要執行動畫,建議在執行動畫之前先調用stop方法,然後再執行動畫
          */
        // 1. 監聽一級菜單的移入事件
        $(".nav>li").mouseenter(function () {
          // 1.1 拿到二級菜單
          var $sub = $(this).children(".sub");
          // 停止當前正在運行的動畫
          $sub.stop();
          // 1.2 讓二級菜單展開
          $sub.slideDown(1000);
        });
        // 2. 監聽一級菜單的移出事件
        $(".nav>li").mouseleave(function () {
          // 2.1 拿到二級菜單
          var $sub = $(this).children(".sub");
          // 停止當前正在運行的動畫
          $sub.stop();
          // 2.2 讓二級菜單收起
          $sub.slideUp(1000);
        });
      });
    </script>
  </head>
  <body>
    <ul class="nav">
      <li>
        一級菜單
        <ul class="sub">
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
          <li>二級菜單</li>
        </ul>
      </li>
      <li>一級菜單</li>
      <li>一級菜單</li>
    </ul>
  </body>
</html>

jQuery淡入淡出動畫

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 13:39:23
 * @LastEditTime: 2020-06-17 13:47:19
 * @FilePath: \代碼\45-jQuery淡入淡出動畫.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>45-jQuery淡入淡出動畫</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 300px;
        height: 300px;
        background: red;
        display: none;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        $("button")
          .eq(0)
          .click(function () {
            $("div").fadeIn(1000, function () {
              alert("淡入完畢");
            });
          });
        $("button")
          .eq(1)
          .click(function () {
            $("div").fadeOut(1000, function () {
              alert("淡出完畢");
            });
          });
        $("button")
          .eq(2)
          .click(function () {
            $("div").fadeToggle(1000, function () {
              alert("切換完畢");
            });
          });
        $("button")
          .eq(3)
          .click(function () {
            $("div").fadeTo(1000, 0.5, function () {
              alert("淡入到完畢");
            });
          });
      });
    </script>
  </head>
  <body>
    <button>淡入</button>
    <button>淡出</button>
    <button>切換</button>
    <button>淡入到</button>
    <div></div>
  </body>
</html>

彈窗廣告

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 14:17:36
 * @LastEditTime: 2020-06-17 14:29:08
 * @FilePath: \代碼\46-彈窗廣告.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .ad {
        position: fixed;
        right: 0;
        bottom: 0;
        display: none;
      }
      .ad > span {
        display: inline-block;
        width: 30px;
        height: 30px;
        background: red;
        position: absolute;
        top: 0;
        right: 0;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        // 1. 監聽span的點擊事件、
        $("span").click(function () {
          $(".ad").remove();
        });

        // 2. 執行廣告動畫
        // $(".ad").slideDown(1000, function () {
        //   $(".ad").delay(5000);
        //   $(".ad").fadeOut(3000);
        // });

        $(".ad").slideDown(1000).delay(5000).fadeOut(3000);
      });
    </script>
  </head>
  <body>
    <div class="ad">
      <img src="images/BB14xSko.jpg" alt="" />
      <span></span>
    </div>
  </body>
</html>

jQuery自定義動畫

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 14:30:58
 * @LastEditTime: 2020-06-17 14:56:58
 * @FilePath: \代碼\47-jQuery自定義動畫.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>47-jQuery自定義動畫</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 100px;
        height: 100px;
        margin-top: 10px;
        background: red;
      }
      .two {
        background: blue;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        $("button")
          .eq(0)
          .click(function () {
            /*
            $(".one").animate(
              {
                width: 500,
              },
              1000,
              function () {
                alert("自定義動畫執行完畢");
              }
            );
            */
            $(".one").animate(
              {
                marginLeft: 500,
              },
              5000,
              function () {}
            );
            /*
              第一個參數:接收一個對象,可以在對象中修改屬性
              第二個參數:指定動畫時長
              第三個參數:指定動畫節奏,默認爲swing
              第四個參數:動畫執行完畢之後的回調函數
            */
            $(".two").animate(
              {
                marginLeft: 500,
              },
              5000,
              "linear",
              function () {}
            );
          });
        $("button")
          .eq(1)
          .click(function () {
            $(".one").animate(
              {
                width: "+=100",
              },
              1000,
              function () {}
            );
          });
        $("button")
          .eq(2)
          .click(function () {
            $(".one").animate(
              {
                // width: "hide",
                width: "toggle",
              },
              1000,
              function () {}
            );
          });
      });
    </script>
  </head>
  <body>
    <button>操作屬性</button>
    <button>累加屬性</button>
    <button>關鍵字</button>
    <div class="one"></div>
    <div class="two"></div>
  </body>
</html>

jQuery的stop和delay方法

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 14:58:28
 * @LastEditTime: 2020-06-17 15:19:02
 * @FilePath: \代碼\48-jQuery的stop和delay方法.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>48-jQuery的stop和delay方法</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      .one {
        width: 100px;
        height: 100px;
        background: red;
      }
      .two {
        width: 500px;
        height: 10px;
        background: blue;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        $("button")
          .eq(0)
          .click(function () {
            /*
             在jQuery的{}中可以同時修改多個屬性,多個屬性的動畫也會同時執行
             */
            /*
            $(".one").animate(
              {
                width: 500,
                // height: 500,
              },
              1000
            );
            $(".one").animate(
              {
                height: 500,
              },
              1000
            );
            */
            /*
            $(".one")
              .animate(
                {
                  width: 500,
                },
                1000
              )
              .delay(2000)
              .animate(
                {
                  height: 500,
                },
                1000
              );
              */

            $(".one").animate(
              {
                width: 500,
                // height: 500,
              },
              1000
            );
            $(".one").animate(
              {
                height: 500,
              },
              1000
            );
            $(".one").animate(
              {
                width: 100,
                // height: 500,
              },
              1000
            );
            $(".one").animate(
              {
                height: 100,
              },
              1000
            );
          });
        $("button")
          .eq(1)
          .click(function () {
            // 立即停止當前動畫,繼續執行後續動畫
            // $("div").stop();
            // $("div").stop(false);
            // $("div").stop(false, false);

            // 立即停止當前和後續所有的動畫
            // $("div").stop(true);
            // $("div").stop(true, false);

            // 立即完成當前的,繼續執行後續動畫
            // $("div").stop(false, true);

            // 立即完成當前的,並且停止後續所有的
            $("div").stop(true, true);
          });
      });
    </script>
  </head>
  <body>
    <button>開始動畫</button>
    <button>停止動畫</button>
    <div class="one"></div>
    <div class="two"></div>
  </body>
</html>

圖標特效

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 15:21:54
 * @LastEditTime: 2020-06-17 17:20:00
 * @FilePath: \代碼\49-圖標特效.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>49-圖標特效</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      ul {
        list-style: none;
        width: 400px;
        height: 250px;
        border: 1px solid #000;
        margin: 100px auto;
      }
      ul > li {
        width: 100px;
        height: 50px;
        margin-top: 50px;
        text-align: center;
        float: left;
        overflow: hidden;
      }
      ul > li > span {
        display: inline-block;
        width: 24px;
        height: 24px;
        background: red;
        position: relative;
        /* top: 50px; */
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        // 2. 監聽li移入事件
        $("li").mouseenter(function () {
          // 2.1 將圖標往上移動
          $(this)
            .children("span")
            .animate(
              {
                top: -50,
              },
              1000,
              function () {
                // 2.2 將圖片往下移動
                $(this).css("top", "50px");
                // 2.3 將圖片復位
                $(this).animate(
                  {
                    top: 0,
                  },
                  1000
                );
              }
            );
        });
      });
    </script>
  </head>
  <body>
    <ul>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
      <li>
        <span></span>
        <p>百度</p>
      </li>
    </ul>
  </body>
</html>

無限循環滾動案例

<!--
 * @Author: 碼小余
 * @Date: 2020-06-17 17:23:12
 * @LastEditTime: 2020-06-17 18:31:49
 * @FilePath: \代碼\51-無限循環滾動下.html
-->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>50-無限循環滾動</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      div {
        width: 600px;
        height: 161px;
        border: 1px solid #000;
        margin: 100px auto;
        overflow: hidden;
      }
      ul {
        list-style: none;
        width: 1800px;
        height: 161px;
        background: #000;
      }
      ul > li {
        width: 300px;
        height: 161px;
        background: yellow;
        font-size: 50px;
        float: left;
        text-align: center;
        line-height: 161px;
      }
    </style>
    <script src="jquery-1.12.4.js"></script>
    <script>
      // 編寫jQuery代碼
      $(function () {
        // 0. 定義變量保存偏移位
        var offset = 0;
        // 1. 讓圖片滾動起來
        var timer;
        function autoPlay() {
          timer = setInterval(function () {
            offset -= 1;
            if (offset <= -1200) {
              offset = 0;
            }
            $("ul").css("marginLeft", offset);
          }, 1);
        }
        autoPlay();
        // 2. 監聽li的移入移除事件
        $("li").hover(
          function () {
            // 停止滾動
            clearInterval(timer);
            // 給非當前選中添加蒙版
            $(this).siblings().fadeTo(100, 0.5);
            // 去除當前選中的蒙版
            $(this).fadeTo(100, 1);
          },
          function () {
            // 繼續滾動
            autoPlay();
            // 去除所有的蒙版
            $("li").fadeTo(100, 1);
          }
        );
      });
    </script>
  </head>
  <body>
    <div>
      <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>1</li>
        <li>2</li>
      </ul>
    </div>
  </body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章