jQuery(三)

目录

 

Tips

1.vau()

2.html方法与text方法

3.width方法与height方法

4.scrollTop与scrollLeft

5.offset方法与position

6.jquery事件机制的发展历程

7.on方式注册事件

8.trigger()触发事件

9.事件对象

10.阻止冒泡和阻止浏览器的默认行为

11.delay()

12.链式编程

13.each方法

14.jq释放$控制权

15.jquery.color.js的使用

16.jquery.lazyload.js的使用

18.jq插件补充

代码

1.事件执行顺序

2.表格删除功能

3.五星评分案例

4.jq固定导航栏

5.返回顶部按钮

6.仿钢琴导航条

7.jquery.ui实现新闻模块


Tips

1.vau()

用于清空和设置内容

$(this).val("");

$(this).val("按钮");

2.html方法与text方法

   <div><h3>我是标题</h3></div>

   html:innerHTML  text:innerText
   console.log($("div").html());//<h3>我是标题</h3>
   console.log($("div").text());//我是标题
   $("div").html("<p>我是文本</p>");
   $("div").text("我是文本");

3.width方法与height方法

    获取div的宽度
    console.log($("div").css("width"));
    $("div").css("width", "400px");
    
    直接获取到的是数字
    就是获取的width的值
    console.log($("div").width());//width
    console.log($("div").innerWidth());//padding+width
    console.log($("div").outerWidth());//padding+width+border
    console.log($("div").outerWidth(true));//padding+width+border+margin
    $("div").width(400);
    
    
    需要获取页面可视区的宽度和高度
    console.log($(window).width());
    console.log($(window).height());

4.scrollTop与scrollLeft

  console.log($(window).scrollTop());
      console.log($(window).scrollLeft());

5.offset方法与position

    //获取元素的相对于document的位置
    console.log($(".son").offset());
    
    //获取元素相对于有定位的父元素的位置
    console.log($(".son").position());

6.jquery事件机制的发展历程

6.1 click()方式

//注册简单事件,缺点:一次只能注册一个事件
    $("p").click(function () {
      alert("呵呵");
    });

  6.2 bind方式
    $("p").bind({
      click:function () {
       alert("呵呵")
      },
      mouseenter:function () {
        alert("哈哈")
      }

  6.3 delegate()方式

    给父元素注册委托事件,最终还是有子元素来执行。
    要给div注册一个委托事件,但是最终不是由执行,而是有p执行
    第一个参数:selector:事件最终由谁来执行。
    第二个参数:事件的类型
    第三个参数:函数,要做什么
    
    动态创建的也能有事件 :缺点:只能注册委托事件   

     $("#box").delegate("p", "click", function () {
      //alert("呵呵");
      console.log(this);
    });

7.on方式注册事件

   推荐以后都用这种方式注册事件

   $("p").on("click", function () {
      alert("呵呵");
    });
        
    $("div").on("click", "p", function () {
      alert("呵呵")
    });
        
    $("#btn").on("click", function () {
      $("<p>我是新建的p元素</p>").appendTo("div");
    });

 

8.trigger()触发事件

      //触发p元素的点击事件
      //$("p").click();
      //$("p").trigger("click");

9.事件对象

<script>
  $(function () {
    
    //100,注册的时候的时候,把100传到事件里面去。
    var money = 100;
    //on(types, selector, data, callback)
    //使用on方法的时候,可以给data参数传一个值,可以在事件里面通过e.data获取到。
    $("div").on("click",100, function (e) {
      console.log(e);
      console.log("哈哈,我有"+e.data);
    });
    
  });
</script>

10.阻止冒泡和阻止浏览器的默认行为

      阻止 默认
      e.preventDefault();
      阻止冒泡
      e.stopPropagation();
      alert("呵呵");
      return false;//既能阻止事件冒泡,也能阻止浏览器的默认行为。
      console.log(e.cancelBubble);

11.delay()

      $("div").fadeIn(1000).delay(2000).fadeOut(1000);    

12.链式编程

    设置性操作:可以链式编程
    获取性操作,不能链式,因为获取性操作,数值,字符串,
    返回值是不是一个jq对象。
    console.log($("div").width(200).height(200).css("backgroundColor", "pink").width());

13.each方法

      $("li").each(function (index, element) {
        $(element).css("opacity", (index+1)/10);
      })

14.jq释放$控制权

    //jQuery释放$的控制权
    $.noConflict();

15.jquery.color.js的使用

<!--1. 引入jquery的js文件-->
<script src="jquery-1.12.4.js"></script>
<!--2. 引入插件的js文件-->
<script src="jquery.color.js"></script>
<script>
  $(function () {
  
    //3. 直接使用即可。
    //说明jquery不支持颜色的渐变,颜色最好用16进制
    $('div').animate({backgroundColor:"#ffc0cb"}, 3000, function () {
        alert("呵呵");
    });
  
  });
</script>

16.jquery.lazyload.js的使用

<script>
  
  $(function () {
  
    $("img.lazy").lazyload();
  
  });
  
</script>

17.

18.jq插件补充

  18.1jquery插件的实质

  就是给jquery的原型上增加方法。

  //$.fn  ==== jQuery.prototype
  $.fn.sayHi = function () {
      console.log("呵呵");
  }

  $(document).sayHi();

18.2自定义jq插件

$.fn.bgColor = function (color) {
  //this是一个jq对象
  this.css("backgroundColor", color);

  return this;
};

代码

1.事件执行顺序

    // 这个是p自己注册的事件(简单事件)
    $("p").on("click", function () {
      alert("呵呵哒");
    });
  
  
    //给div自己执行的
    $("div").on("click", function () {
      alert("呜呜呜");
    });
    
    //给div里面的p执行 委托事件
    $("div").on("click", "p", function () {
      alert("嘿嘿嘿")
    });

    时间执行顺序:呵-》嘿-》呜

2.表格删除功能

<script>
  $(function () {
    //1. 找到清空按钮,注册点击事件,清空tbody
    $("#btn").on("click", function () {
      $("#j_tb").empty();
    });
    
    
    //2. 找到delete,注册点击事件
//    $(".get").on("click", function () {
//      $(this).parent().parent().remove();
//    });
    
    $("#j_tb").on("click", ".get", function () {
      $(this).parent().parent().remove();
    });
    
    
    //3. 找到添加按钮,注册点击事件
    $("#btnAdd").on("click", function () {
      $('<tr> <td>jQuery111</td> <td>111</td> <td><a href="javascrip:;" class="get">DELETE</a></td> </tr>').appendTo("#j_tb");
    });
    
  });
  
</script>

3.五星评分案例

  <script>
    $(function () {
      
      //1. 给li注册鼠标经过事件,让自己和前面所有的兄弟都变成实心
      var wjx_k = "☆";
      var wjx_s = "★";
      $(".comment>li").on("mouseenter", function () {
        $(this).text(wjx_s).prevAll().text(wjx_s);
        $(this).nextAll().text(wjx_k);
      });
      
      //2. 给ul注册鼠标离开时间,让所有的li都变成空心
      $(".comment").on("mouseleave", function () {
        $(this).children().text(wjx_k);
        
        //再做一件事件,找到current,让current和current前面的变成实心就行。
        $("li.current").text(wjx_s).prevAll().text(wjx_s);
      });
      
      //3. 给li注册点击事件
      $(".comment>li").on("click", function () {
        $(this).addClass("current").siblings().removeClass("current");
      });
      
      
    });
  </script>

4.jq固定导航栏

  <script>
    $(function () {
      
      $(window).scroll(function () {
        //判断卷去的高度超过topPart的高度
        //1. 让navBar有固定定位
        //2. 让mainPart有一个marginTop
        if($(window).scrollTop() >= $(".top").height() ){
          $(".nav").addClass("fixed");
          $(".main").css("marginTop", $(".nav").height() + 10);
        }else {
          $(".nav").removeClass("fixed");
          $(".main").css("marginTop", 10);
        }
        
      });
      
    });
  </script>

5.返回顶部按钮

<script>
  $(function () {
    
    //当页面超出去1000px的时候,让小火箭显示出来,如果小于1000,就让小火箭隐藏
    $(window).scroll(function () {
      if($(window).scrollTop() >= 1000 ){
        $(".actGotop").stop().fadeIn(1000);
      }else {
        $(".actGotop").stop().fadeOut(1000);
      }
    });
    
    function getScroll(){
      return {
        left:window.pageYOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,
        top:window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
      }
    }
    
    //在外面注册
    $(".actGotop").click(function () {
      //$("html,body").stop().animate({scrollTop:0},3000);
      //scrollTop为0
      //$(window).scrollTop(0);
    })
    
  });
</script>

6.仿钢琴导航条

  <script>
    $(function () {
      //给li注册鼠标进入事件,让li下面的span top:0  播放音乐
      $(".nav li").mouseenter(function () {
        $(this).children("span").stop().animate({top: 0});
        //播放音乐
        var idx = $(this).index();
        $(".nav audio").get(idx).load();
        $(".nav audio").get(idx).play();
      }).mouseleave(function () {
        $(this).children("span").stop().animate({top: 60});
      });
      
      //节流阀  :按下的时候,触发,如果没弹起,不让触发下一次
      //1. 定义一个flag
      var flag = true;
      
      
      //按下1-9这几个数字键,能触发对应的mouseenter事件
      $(document).on("keydown", function (e) {
        if(flag) {
          flag = false;
          //获取到按下的键
          var code = e.keyCode;
          if(code >= 49 && code <= 57){
            //触发对应的li的mouseenter事件
            $(".nav li").eq(code - 49).mouseenter();
          }
        }
       
      });
  
      $(document).on("keyup", function (e) {
        flag = true;
        
        //获取到按下的键
        var code = e.keyCode;
        if(code >= 49 && code <= 57){
          //触发对应的li的mouseenter事件
          $(".nav li").eq(code - 49).mouseleave();
        }
      });
      
      
      //弹起的时候,触发mouseleave事件
      
    });
  </script>

7.jquery.ui实现新闻模块

<script src="jquery-1.12.4.js"></script>
<script src="jquery-ui.js"></script>


<script>
  $(function () {
  
    $(".drag-wrapper").draggable({
      handle:".drag-bar"
    });
  
    
    $(".sort-item").sortable({
      opacity:0.3
    });
    
    
    $(".resize-item").resizable({
      handles:"s"
    });
  });
</script>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值