jQuery(三)—节点操作和元素尺寸

jQuery节点操作和元素尺寸

节点操作
创建、追加元素
  • $()直接传入想要创建的节点

    var $newli = $("<li>这是一个新的li标签</li>")
    
  • 追加元素1(给父元素内部追加)

     $ul.append($newli);//在父元素最后追加
     $newli.prependTo($ul);//在父元素最前面追加
     $newli.appendTo("ul");
    
  • 追加元素2(给兄弟元素追加),一般是多个标签存在给确定样式的某个元素的前或后面添加

     $old.after($newli);      $newli.insertAfter($old);
     $old.before($newli);     $newli.insertBefore($old);
    
删除、清空元素
  • 想要删除对象.remove()方法

     $(".old").remove();
    
  • 清空方法1:.empty()清空内部所有元素及元素相关的事件

     $(".box").empty();
    
  • 清空方法2:.html(’ ') 仅仅清空内部元素,不清理内存中元素的事件

     $(".box").html("");
    
克隆元素
  • jQuery对象.clone(布尔值),返回克隆好的元素,默认false表示仅仅克隆内容,true表示克隆内容和事件

     var $new = $("box").clone(true);
    
元素尺寸
  • width()和height()获取到 底之后内容部分

    console.log($(".box").width()); //200
    
  • innerWidth()和innerHeight()得到内容+padding部分

    console.log($(".box").innerHeight()); //200+50+50
    //传入参数设置的时候,将数值是添加给width的部分
    
  • outerWidth和outerHeight得到内容+padding+border

    console.log($(".box").outerWidth()); //200+50+50+20+20
    
操作元素位置
  • offset()方法用来获取元素距离文档的位置,得到一个对象数值,与父级的定位位置没有关系

  • position()方法距离上级定位参考元素的位置,参照最近的定位元素

  • 滚动条卷走距离

    • 设置滚动事件,调用scrollTop()方法来获取卷去的页面间距

    • 返回顶部按钮案例

      $(".backtop").click(function() 
      {   $(document).scrollTop(0); })
      
案例练习
固定导航
  • 通过scrollTop来获取滚动高度,和box2的offset中top属性进行对比,如果小于则添加黏着属性

     var v1 = $box2.offset().top;
       // 给整个文档添加一个点击事件
     $(document).scroll(function() {
         var v2 = $(this).scrollTop();
         // 如果小于就固定
         if (v2 >= v1) {   
         $box2.addClass("active");  $backtop.show(); }
         else {
         $box2.removeClass("active"); $backtop.hide(); }
     })
    
返回顶部
  • 返回顶部效果可以通过动画实现

    $backtop.click(function() {
    // 让页面滚动到顶部,滚动的元素要选择html和body,直接使用document是没有属性的
        $("html,body").animate({   "scrollTop": 0}, 500);
    })
    
楼梯导航
  • 通过每个高度获取进行不断判断样式的添加
  • 再加上点击事件让页面的滚动距离发生改变

jQuery事件操作和插件

on方法
注册事件
  • 封装的底层实际是addEventLister()方法

    • .on(“事件名”,事件处理程序)

    • 可以添加多个事件不会被覆盖

      $("input").on("click", function() { alert(2);  })
      
事件委托
  • .on(“事件名”,“选择器”,事件处理程序)

    • 选择器:子孙元素,this代表的是子孙元素

    • 在事件委托过程中,事件函数内部this不是指向事件源,而是指向触发事件的委托子元素

       $("ul").on("click", " li", function() 
             {  console.log($(this).text()) })
      
off方法
解除绑定
  • .off(“事件名”,事件处理程序)

    • $("input").off("click", fun1)
      
解绑事件委托
  • .off(“事件名”,“选择器”,事件处理程序)

    • $("ul").off("click", " li", fn1)
      
trigger方法
  • 自动触发事件,模拟事件被触发状态,轮播图在没有右按钮按下的情况下,可以自动执行右按钮事件

    function auto() { $(".arrow-right").trigger("click");   }
    
事件对象
  • 事件处理程序的第一个形参e
  • 鼠标事件对象属性
    • clientX/Y参照浏览器
    • pageX/Y参照文档
    • offsetX/Y参照元素
  • 键盘事件对象属性
    • keyCode 返回键码数字
    • altKey/shiftKey/ctrlKey返回布尔值,判断键是否被按下
  • 公共属性和方法
    • target:最初触发事件的DOM元素
    • current Target在事件冒泡阶段中的当前DOM元素
    • preventDefault()阻止默认行为
    • stopPropagation()阻止事件冒泡
多库共存问题
  • 引用多个库中标识符$冲突问题

    • 用jQuery代替$

    • jQuery库释放$符合的使用权,用其他简单的符号代替

      var $1 = jQuery.noConflict();//将$含义标识符给别的符号
      console.log($1);//ƒ (a,b){return new n.fn.init(a,b)}
      
jQuery插件

找到并下载插件—>项目外写一个demo—>看源码文档

  • 获取插件方法
    • 百度搜索,GitHub搜索
    • 看技术文章、和别人交流
    • jQuery插件库之家(http.htmleaf.com)
  • 放大镜插件
  • 轮播图插件

插件棒呆~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值