zoukankan      html  css  js  c++  java
  • jQuery文档处理--事件--动画

    文档处理

    添加到指定元素内部的后面

    $(A).append(B)// 把B追加到A
    $(A).appendTo(B)// 把A追加到B

    添加到指定元素内部的前面

    $(A).prepend(B)// 把B前置到A
    $(A).prependTo(B)// 把A前置到B

    添加到指定元素外部的后面

    $(A).after(B)// 把B放到A的后面
    $(A).insertAfter(B)// 把A放到B的后面

    添加到指定元素外部的前面

    $(A).before(B)// 把B放到A的前面
    $(A).insertBefore(B)// 把A放到B的前面

    移除和清空元素

    remove()// 从DOM中删除所有匹配的元素。
    empty()// 删除匹配的元素集合中所有的子节点。

    替换

    replaceWith() //将所有匹配的元素替换成指定的HTML或DOM元素。
    replaceAll() //用匹配的元素替换掉所有 selector匹配到的元素。

    克隆

    clone()// 参数

    克隆示例:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>克隆</title>
      <style>
        #b1 {
          background-color: deeppink;
          padding: 5px;
          color: white;
          margin: 5px;
        }
        #b2 {
          background-color: dodgerblue;
          padding: 5px;
          color: white;
          margin: 5px;
        }
      </style>
    </head>
    <body>
    
    <button id="b1">屠龙宝刀,点击就送</button>
    <hr>
    <button id="b2">屠龙宝刀,点击就送</button>
    
    <script src="jquery-3.2.1.min.js"></script>
    <script>
      // clone方法不加参数true,克隆标签但不克隆标签带的事件
      $("#b1").on("click", function () {
        $(this).clone().insertAfter(this);
      });
      // clone方法加参数true,克隆标签并且克隆标签带的事件
      $("#b2").on("click", function () {
        $(this).clone(true).insertAfter(this);
      });
    </script>
    </body>
    </html>
    
    点击复制按钮
    View Code

    常用事件

    click()  //点击事件
    mouseover()    //鼠标移入 不管鼠标移到父元素还是子元素都会触发事件
    mouseenter()   //鼠标移入 只有鼠标移入到父元素才触发事件
    mouseout()      //鼠标移出
    mouseleave( )  //鼠标移出
    
    keydown()  //键盘事件:键按下
    keyup()    //键盘事件:键弹起

    表单事件

    blur()   // 失去焦点,  如果事件函数传递function,作为事件使用, 如果没有函数, 作为一个普通函数,  让元素失去焦点
    focus() // 得到焦点, 没有写function, 普通的函数, 让元素得到焦点
    submit([fn]) // 提交表单触发这个事件,如果没写函数, 提交表单
    
    change() //表单内容被改变,事件仅适用于文本域(text field),以及 textarea 和 select 元素。
    //当用于 select 元素时,change 事件会在选择某个选项时发生。当用于 text field 或 text area 时,该事件会在元素失去焦点时发生。
    
    select()  //文本框,文本域, 内容被选中时触发

    复合事件

     hover(fn1,fn2)  //包含mouseover,mouseout这个两个事件
    //Fn1 就是触发mouseover调用的函数,  fn2 就是触发mouseout调用的函数
    //注意:  hover(fn)  只写了一个函数,表示mouseover,mouseout 事件都调用这个函数
    
     toggle()  //多次点击事件: click
     toggle(fn1,fn2,fn3,...)
     //第一次点击, 调用fn1, 第二次点击, 调用fn2,第三次点击, 调用fn3
     //注意: toggle()作为复合事件,在jquery的高版本中失效, 

    事件绑定

    (在选择元素上绑定一个或多个事件的事件处理函数。)

    bind()  绑定一个事件 ,bind 不能解决对新添加的元素无效的问题

    unbind() 解除一个事件的绑定

    on() 绑定事件, 普通写法参数与bind一样, 不能解决对新添加的元素无效的问题

      on另外一种写法: 对新添加的元素有效

      $(document).on(”事件类型”,“选择器”,fn)

    off()  解除绑定

    one()  一次性绑定事件,  这个事件一旦触发之后,这个事件就失效

    //使用on() 绑定事件
                $("#all").on("click",function(){
                    $("input[name=product]").prop("checked",$(this).prop("checked"));
                });

    阻止后续事件执行

    1. return false// 常见阻止表单提交等

    2. e.preventDefault();
     $("#b1").click(function (e) {
            alert(123);
            //return false;
            e.preventDefault();
        });

    动画效果

    // 基本
    show([s,[e],[fn]])
    hide([s,[e],[fn]])
    toggle([s],[e],[fn])
    // 滑动
    slideDown([s],[e],[fn])
    slideUp([s,[e],[fn]])
    slideToggle([s],[e],[fn])
    // 淡入淡出
    fadeIn([s],[e],[fn])
    fadeOut([s],[e],[fn])
    fadeTo([[s],o,[e],[fn]])
    fadeToggle([s,[e],[fn]])
    // 自定义(了解即可)
    animate(p,[s],[e],[fn])

    自定义动画案例:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="x-ua-compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>点赞动画示例</title>
      <style>
        div {
          position: relative;
          display: inline-block;
        }
        div>i {
          display: inline-block;
          color: red;
          position: absolute;
          right: -16px;
          top: -5px;
          opacity: 1;
        }
      </style>
    </head>
    <body>
    
    <div id="d1">点赞</div>
    <script src="jquery-3.2.1.min.js"></script>
    <script>
      $("#d1").on("click", function () {
        var newI = document.createElement("i");
        newI.innerText = "+1";
        $(this).append(newI);
        $(this).children("i").animate({
          opacity: 0
        }, 1000)
      })
    </script>
    </body>
    </html>
    
    点赞特效简单示例
    View Code

    each循环

    jQuery.each(collection, callback(indexInArray, valueOfElement)):

    描述:一个通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代。

    li =[10,20,30,40]
    $.each(li,function(i, v){
      console.log(i, v);//index是索引,ele是每次循环的具体元素。
    })

    .each(function(index, Element)):

    描述:遍历一个jQuery对象,为每个匹配元素执行一个函数。

    .each() 方法用来迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。由于回调函数是在当前DOM元素为上下文的语境中触发的,所以关键字 this 总是指向这个元素。

    // 为每一个li标签添加foo
    $("li").each(function(){
      $(this).addClass("c1");
    });

    在遍历过程中可以使用 return false提前结束each循环

    终止each循环  return false;

  • 相关阅读:
    window 7系统环境同时安装window xp系统,形成双系统
    工作感悟
    数据湖框架选型很纠结?一文了解Apache Hudi核心优势
    mysql数据库设计-规则
    maven中多个子模块的构建顺序
    EXTJS3.0 表单元素TextField datefield 设置只读并改背景颜色为灰色
    MySQL5.7的账号回收权限
    哲学王子-复旦博导王德峰教授:阅读与哲学思考
    abseil 的 cmake 方式编译
    [javascript] ie下audio不支持一些媒体类型
  • 原文地址:https://www.cnblogs.com/64Byte/p/12649921.html
Copyright © 2011-2022 走看看