当前位置: 首页 > article >正文

jQuery学习笔记1

// jQuery的入口函数
// 1.等着DOM结构渲染完毕即可执行内部代码,不必等到所以外部资源加载完毕,jQuery帮我们完成了封装
// 相当于原生js中的DOMContentLoaded 

<script src="./jquery.min.js"></script>
<style>
      div {
        width: 200px;
        height: 200px;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <div></div>
    <script>
      // jQuery的入口函数
      // 1.等着DOM结构渲染完毕即可执行内部代码,不必等到所以外部资源加载完毕,jQuery帮我们完成了封装
      // 相当于原生js中的DOMContentLoaded
      // $("div").hide();
      // 1.等着页面dom加载完毕之后执行js代码
      // $(document).ready(function () {
      //   $("div").hide();
      // });
      // 2.等着页面DOM加载完毕再去执行js代码
      $(function () {
        $("div").hide();
      });
    </script>

jQuery的顶级对象$

      // 1.$是jQuery的别称(另外的名字)
      // $(function () {
      //   alert("1111");
      // });
      jQuery(function () {
        // alert("1111");
        // $("div").hide();
        jQuery("div").hide();
      });
      // 2.$同时也是jQuery的顶级对象

 

 代码测试功能:

      // 1.DOM对象: 用原生js获取过来的对象就是DOM对象
      var myDiv = document.querySelector("div"); // myDiv 是原生DOM对象
      var mySpan = document.querySelector("span"); // mySpan 是原生DOM对象
      console.dir(myDiv);
      // 2.jQuery对象: 用jQuery方式获取过来的对象是jQuery对象,本质:通过$把DOM元素进行了包装
      $("div"); // $('div')是一个jQuery对象
      $("span"); // $('span')是一个jQuery对象
      console.dir($("div"));
      // 3.jQuery对象只能使用jQuery方法,DOM对象则使用原生的javascript属性和方法
      // myDiv.style.display = 'none'
      // myDiv.hide(); // myDiv是一个dom对象不能使用jquery里面的hide方法
      // $("div").style.display = "none"; //会报错

jQuery对象和DOM对象

    <style>
      video {
        width: 200px;
        height: 200px;
        background-color: pink;
      }
    </style>
  </head>
  <body>
    <video src="mov.mp4" muted></video>
    <script>
      // DOM对象转换成为jQuery对象
      // (1)我们直接获取视频,得到就是jQuery对象
      $("video");
      // (2)我们已经使用原生js获取过来DOM对象
      var myvideo = document.querySelector("video");
      // $(myvideo).play(); // jquery里面没有play这个方法
      // 2.jQuery对象转换成DOM对象
      // myvideo.play(); // 原生写法比较麻烦
      // $("video")[0].play();
      $("video").get(0).play();
    </script>

jQuery选择器

隐式迭代(重要)

    <script>
      // 1.获取四个div元素
      console.log($("div"));
      // 2.给四个div设置背景颜色为粉色,jquery对象不能使用style
      $("div").css("background", "pink");
      // 3.隐式迭代就是把匹配的所有元素进行遍历循环,给每一个元素添加css这个方法
      $("ul li").css("color", "red");
    </script>

    <script>
      $(function () {
        $("ul li:first").css("color", "red");
        $("ul li:eq(2)").css("color", "blue");
        $("ol li:odd").css("color", "skyblue");
        $("ol li:even").css("color", "pink");
      });
    </script>

 

查找父级,最近一级子元素,所有子元素    
<script>
      // 注意一下都是方法 带括号
      $(function () {
        // 1.父 parent() 返回的是 最近一级的父级元素
        console.log($(".son").parent());
        // 2.子
        // (1)儿子 children() 子代选择器 ul>li
        $(".nav").children("p").css("color", "red");
        // (2) 可以选择里面所有的孩子 包括儿子和孙子 find() 类似于后代选择器
        $(".nav").find("p").css("color", "red");
        // 3.兄
      });
    </script>


新浪下拉菜单
   <script>
      $(function () {
        // 鼠标进入
        $(".nav>li").mouseover(function () {
          // $(this) jQuery当前元素 this不要加引号
          // show() 显示元素 hide() 隐藏元素
          $(this).children("ul").show();
        });
        // 鼠标移开
        $(".nav>li").mouseout(function () {
          // $(this) jQuery当前元素 this不要加引号
          // show() 显示元素
          $(this).children("ul").hide();
        });
      });
    </script>


    筛选选择器
    <script>
      // 注意一下都是方法 带括号
      $(function () {
        // 1. 兄弟元素siblings 除了自身元素之外所有亲兄弟
        $("ol .item").siblings("li").css("color", "red");
        // 2.第n个元素
        var index = 2;
        // (1) 我们可以利用选择器的方式选择
        // $("ul li:eq(2)").css("color", "blue");
        // $("ul li:eq(" + index + ")").css("color", "blue");
        // (2) 我们可以利用选择方法的方式选择 更推荐这种写法
        $("ul li").eq(index).css("color", "blue");
        // 3.判断是否有某个类名
        console.log($("div:first").hasClass("current"));
        console.log($("div:last").hasClass("current"));
      });
    </script>

    <script>
      $(function () {
        // 1. 隐式迭代 给所有的按钮都绑定了点击事件
        $("button").click(function () {
          // 2.当前元素变化背景颜色
          $(this).css("background", "pink");
          // 3. 其余的兄弟去掉背景颜色 隐式迭代
          $(this).siblings("button").css("background", "");
        });
      });
    </script>

    // 链式编程
    <script>
      $(function () {
        // 1. 隐式迭代 给所有的按钮都绑定了点击事件
        $("button").click(function () {
          // 2.当前元素变化背景颜色
          //   $(this).css("background", "pink");
          // 3. 其余的兄弟去掉背景颜色 隐式迭代
          //   $(this).siblings("button").css("background", "");
          //   我的颜色为红色,我的兄弟的颜色为空
          $(this).css("color", "red").siblings().css("color", "");
          //   我的兄弟的颜色为红色,我本身不变色
          //   $(this).siblings().css("color", "red");
          // 最后给我的兄弟的父亲body变化颜色
          $(this).siblings().parent().css("color", "blue");
        });
      });
    </script>

    // 淘宝服饰
    <script>
      $(function () {
        // 1.鼠标经过左侧的小li
        $("#left li").mouseover(function () {
          // 2.得到当前小li的索引号
          var index = $(this).index();
          console.log(index);
          // 3.让我们右侧的盒子相应索引号的图片显示出来就好了
          //   $("#content div").eq(index).show();
          // 4.让其余的图片隐藏起来
          //   $("#content div").eq(index).siblings().hide();
          // 使用链式编程
          $("#content div").eq(index).show().siblings().hide();
        });
      });
    </script>

jQuery 样式操作

    <script>
      // 操作样式之css方法
      $(function () {
        console.log($("div").css("width"));
        // $("div").css("width", "300px");
        // $("div").css("width", 300);
        // $("div").css("height", "300px"); // 属性名一定要加引号,属性值不一定
        $("div").css({
          width: 400,
          height: 400,
          backgroundColor: "red",
          // 如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号
        });
      });
    </script>

  

  <body>
    <div class="current"></div>
    <script>
      $(function () {
        // 1.添加类 addClass()
        // $("div").click(function () {
        //   $(this).addClass("current");
        // });
        // 2.删除类 removeClass()
        // $("div").click(function () {
        //   $(this).removeClass("current");
        // });
        // 3.切换类 toggleClass()
        $("div").click(function () {
          $(this).toggleClass("current");
        });
      });
    </script>
  </body>

    <script>
      $(function () {
        // 1.点击上部的li,当前li 添加current类,其余兄弟移除类
        $(".tab_list li").click(function () {
          // 链式编程的操作
          $(this).addClass("current").siblings().removeClass("current");
          // 2.点击的同时,得到当前li的索引号
          var index = $(this).index();
          console.log(index);
          // 3.让下部里面相应索引号的item显示,其余的item隐藏
          $(".tab_con .item").eq(index).show().siblings().hide();
        });
      });
    </script>

    <script>
      //   var one = document.querySelector(".one");
      //   one.className = "two";
      $(".one").addClass("two"); // 这个addClass相当于追加类名,不影响以前的类名
      $(".one").removeClass("two");
    </script>

 jQuery 效果 

  

但是如果快速滑动菜=菜单栏,多个地方就会出现动画效果,因为hover移动上去,出现的动画效果必须执行完成,动画都有排队的问题

        // 显示隐藏效果
        $(function () {
        $("button")
          .eq(0)
          .click(function () {
            $("div").show(1000, function () {
              {
                console.log("1");
              }
            });
          });
        $("button")
          .eq(1)
          .click(function () {
            $("div").hide(1000, function () {
              {
                console.log("2");
              }
            });
          });
        $("button")
          .eq(2)
          .click(function () {
            $("div").toggle(1000);
          });
        // 一般情况下,我们都不加参数直接显示隐藏就可以了



    // 滑动下拉菜单
    <script>
      $(function () {
        // 鼠标经过
        // $(".nav > li").mouseover(function () {
        //   // $(this) jquery 当前元素 this 不要加引号
        //   // show() 显示元素 hide() 隐藏元素
        //   $(this).children("ul").slideDown(200);
        // });
        // 鼠标离开
        // $(".nav > li").mouseout(function () {
        //   $(this).children("ul").slideUp(200);
        // });
        // 事件切换 hover 就是鼠标经过和离开的复合写法
        // $(".nav>li").hover(
        //   function () {
        //     $(this).children("ul").slideDown(200);
        //   },
        //   function () {
        //     $(this).children("ul").slideUp(200);
        //   }
        // );
        // 2.事件切换 hover 如果只写一个函数,那么鼠标经过和鼠标移开都会触发这个函数
        $(".nav>li").hover(function () {
          // stop 方法必须写到动画的前面
          $(this).children("ul").stop().slideToggle();
          //   这样写相当于停止动画
          $(this).children("ul").slideToggle().stop();
        });
      });
    </script>

   //淡入淡出效果
     <script>
        $(function() {
            $("button").eq(0).click(function() {
                // 淡入 fadeIn()
                $("div").fadeIn(1000);
            })
            $("button").eq(1).click(function() {
                // 淡出 fadeOut()
                $("div").fadeOut(1000);

            })
            $("button").eq(2).click(function() {
                // 淡入淡出切换 fadeToggle()
                $("div").fadeToggle(1000);

            });
            $("button").eq(3).click(function() {
                //  修改透明度 fadeTo() 这个速度和透明度要必须写
                $("div").fadeTo(1000, 0.5);

            });
        });
    </script>

    //实例
    <script>
      $(function () {
        // 鼠标进入的时候,其他的li标签透明度: 0.5
        $(".wrap li").hover(
          function () {
            $(this).siblings().stop().fadeTo(400, 0.5);
          },
          function () {
            // 鼠标离开,其他li 透明度改为1
            $(this).siblings().stop().fadeTo(400, 1);
          }
        );
      });
    </script>

    <script>
      $(function () {
        $("button").click(function () {
           //params 更改需要更改的属性
          $("div").animate(
            {
              left: 500,
              top: 300,
              opacity: 0.4,
              width: 300,
            },
            500
          );
        });
      });
    </script>

    <script type="text/javascript">
      $(function () {
        // 鼠标经过某个小li,有两步操作
        $(".king li").mouseenter(function () {
          // 1.当前小li宽度变为 224px, 同时里面的小图片淡出,大图片淡入
          $(this)
            .stop()
            .animate(
              {
                width: 224,
              },
              200
            )
            .find(".small")
            .stop()
            .fadeOut()
            .siblings(".big")
            .stop()
            .fadeIn();
          // 其余兄弟小li宽度变为 69px,小图片淡入,大图片淡出
          $(this)
            .siblings("li")
            .stop()
            .animate(
              {
                width: 69,
              },
              200
            )
            .find(".small")
            .stop()
            .fadeIn()
            .siblings(".big")
            .stop()
            .fadeOut();
        });
      });
    </script>


http://www.kler.cn/a/461015.html

相关文章:

  • 黑马JavaWeb开发跟学(十四).SpringBootWeb原理
  • linux-26 文件管理(四)install
  • 关于IDE的相关知识之三【插件安装、配置及推荐的意义】
  • SASS 简化代码开发的基本方法
  • Ansys Discovery 中的网格划分方法:探索模式
  • springboot集成qq邮箱服务
  • 无人机任务载荷系统之电子对抗技术!
  • 使用PyTorch实现的二分类模型示例,综合了CNN、LSTM和Attention技术
  • MyBatis-Plus 中的分页插件配置
  • 在C++中,dynamic_cast是一种用于在类的继承体系中进行安全向下转型
  • 搭建ZooKeeper分布式集群
  • 2、单片机、CC2530、zigbee期末考试选择、填空题含答案
  • 如何确保Kafka集群的高可用?
  • Cursor小试1.生成一个网页的接口请求工具
  • Django 管理界面实现自动提交和动态字段选项
  • 鸿蒙HarmonyOS应用开发 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
  • C++中宏的使用方法
  • AI同传的崛起:人工同传还能坚持多久?
  • 股市学习 seekingalpha tradingview
  • OpenAI 的 o3 — AGI 还是闪亮的幻影?
  • 信息安全管理:网络安全
  • iPhone 14、iPhone SE 3,提前淘汰
  • 深度学习-稀疏卷积
  • SD-WAN与传统专线网络的区别分析
  • Codigger集成Copilot:智能编程助手
  • 【2024年-7月-27日-开源社区openEuler实践记录】剖析 elease - management:优化软件发布流程的开源方案