码迷,mamicode.com
首页 > Web开发 > 详细

JQuery

时间:2019-12-31 14:05:18      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:鼠标   定时   删除元素   计算   osi   item   排队   height   使用步骤   

jQuery入门

  1. jQuery的优点

    • 轻量级。核心文件才几十kb,不会影响页面加载速度

    • 跨浏览器兼容。基本兼容了现在主流的浏览器

    • 链式编程,隐式迭代

    • 对事件、样式、动画支持、大大简化了DOM操作

    • 支持插件扩展开发。有着丰富的第三方的插件,例如:树形菜单、日期控件、轮播图等

    • 免费、开源

  2. 通过jQuery入口函数可以拿到DOM元素

    • 示例代码如下

    • $(document).ready(function(){
      
      //以后所有的jQuery代码都写在里面
      
      })
  3. 通过jQuery入口函数不可以拿到DOM元素的宽高

  4. 原生JS和jQuery入口函数的加载模式不同

    • 原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行

    • jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕,就会执行

    • 原生的JS如果编写了多个入口函数,后面编写的会覆盖前面编写的

    • jQuery中编写多个入口函数,后面的不会覆盖前面的

  5. jQuery入口函数的其它写法 $是JQuery的顶级对象

    • 是等着页面DOM加载完毕再去执行js代码

    • 1.第一种写法
      
      $(document).ready(function(){
      
      //以后所有的jQuery代码都写在里面
      
      })
      
      2.第二种写法
      
      jQuery(document).ready(function(){
      
      //以后所有的jQuery代码都写在里面
      
      })
      
      3.第三种写法(推荐)
      
      $(function(){
      
      //以后所有的jQuery代码都写在里面
      
      })
      
      4.第四种写法
      
      jQuery(function(){
      
      //以后所有的jQuery代码都写在里面
      
      })
  6. jQuery冲突问题解决方案

    • 1.释放$的使用权

      • 注意点:

        • 释放操作必须在编写其它jQuery代码之前编写

        • 释放之后就不能再使用$,改为使用jQuery

      • 示例代码如下

        • jQuery.noConflict();

    • 2.自定义一个访问符号

      • var nj = jQuery.noConflict();

jQuery核心函数

  1. 核心函数

    • $(); 就代表调用jQuery的核心函数

    • 1.接收一个函数 示例代码如下

      • $(function(){
        
        alert(‘hello jQuery‘)
        
        2.接收一个字符串
        
        2.1接收一个字符串选择器 示例代码如下
        
        返回一个jQuery对象,对象中保存了找到的DOM元素
        
        var $box1 = $(".box1") 选择class类名为.box1的标签
        
        var $box2 = $("#box2") 选择id 为#box2的标签
        
        2.2接收一个字符串代码片段 示例代码如下
        
        返回一个jQuery对象,对象中保存了创建的DOM元素
        
        var $p = $("< p>我是段落< /p>") 根据传进的代码片段 自动生成相应的DOM元素
        
        $box1.append($p) 将p标签添加叫box1的里面
        
        3接收一个DOM元素 示例代码如下
        
        var span = document.getElementsByTagName(‘span‘)[0]
        
        var $span = $(span); 会将原生的DOM元素,包装成一个jQuery对象返回给我们
        
        })
  2. jQuery对象

    • 什么是jQuery对象:

      • jQuery对象是一个伪数组。 伪数组有0到length-1的属性,并且有length属性

  3. DOM对象和jQuery对象

    • .DOM对象: 用原生js获取过来的对象就是DOM对象
      
      var myDiv = document.querySelector(‘div‘);// myDiv是DOM对象
      
      2.jQuery对象: 用jQuery方式获取过来的对象是jQuery对象。本质:通过$把DOM元素进行了包装(伪数组形式进行存储的)
      
      $(‘div‘) //这是一个jQuery对象
      
      3.jQuery对象只能使用jQuery方法。 DOM对象则使用原生的JavaScript属性和方法
      
      4.DOM对象与jQuery对象之间是可以相互转换的
      
      因为原生js比JQuery更大,原生的一些属性和方法Jquery 没有给我们封装,要想使用这些属性和方法需要把jQuery对象转换伪DOM对象才能使用
      
      1.DOM对象转换伪jQuery对象
      
      $(‘DOM对象‘)
      
      2.jQuery对象转换为DOM对象
      
      第一种方式
      
      $(‘div‘)[index] index是索引号
      
      第二种方式
      
      $(‘div‘).get(index) index是索引号
      
       

jQuery常用API

  1. jQuery选择器

    • 原生JS获取元素方式很多,很杂,而且兼容性情况不一致,因此jQuery给我们做了封装,使获取元素统一标准

    • $("选择器") //里面选择器直接写CSS选择器即可,但是要加引号

    • 基本选择器有

      • 名称用法描述
        ID选择器 $("#id") 获取指定ID的元素
        全选选择器 $("*") 匹配所有元素
        类选择器 $(".class") 获取同一类class的元素
        标签选择器 $(‘div‘) 获取同一类标签的所有元素
        并集选择器 $(‘div,p,li‘) 选取多个元素
        交集选择器 $("li.current") 交集元素
    • 层级选择器

      • 名称用法描述
        子代选择器 $("ul>li") 使用>号,获取亲儿子层级的元素;注意,并不会获取孙子层级的元素
        后代选择器 $("ul li") 使用空格,代表后代选择器,获取ul下的所有li元素,包括孙子等
    • $(‘div‘).css(‘属性‘,‘‘值") 可以用来设置样式

    • 隐式迭代(重要)

      • 遍历内部DOM元素(伪数组形式存储) 的过程就叫做隐式迭代

      • 简单理解: 给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用

    • 筛选选择器

      • 语法用法描述
        :first $("li:first") 获取第一个li元素
        :last $("li:last") 获取最后一个li元素
        :eq(index) $("li:eq(2)") 获取到的li元素中,选择索引号为2的元素,索引号index从0开始
        :odd $("li:odd") 获取到的li元素中,选择索引号为奇数的元素
        :even $("li:even") 获取到的li元素中,选择索引号为偶数的元素
    • jQuery筛选方法(重点)

      • 语法用法说明
        parent() $("li").parent()‘; 查询父级(最近一级的父级元素)
        children(selector) $("ul").children("li") 相当于$("ul>li"),最近一级(亲儿子)
        find(selector) $("ul").find("li") 相当于$("ul li"),后代选择器
        siblings(selector) $(".first").siblings("li") 查询所有的兄弟节点,不包括自己本身
        nextAll([expr]) $(".first").nextAll() 查找当前元素之后所有的同辈元素
        prevtAll([expr]) $(".last").prevAll() 查询当前元素之前所有的同辈元素
        hasClass(class) $("div").hasClass("protected") 检查当前的元素是否包含有某个特定的类,如果有,则返回true
        eq(index) $("li").eq(2) 相当于$("li:eq(2)"),index从0开始
      • $(this) 指向jQuery当前元素,this不要加引号

      • 重点记住: parent() children() find() siblings() eq()

    • jQuery的排他思想

      • 想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式、

      • 比如有6个按钮点击 自身加背景,其余不加 示例代码如下

        • $(function(){
          
          //1.隐式迭代 给所有的按钮都绑定了点击事件
          
          $("button").click(function(){
          
          //2.当前的元素变化背景颜色
          
          $(this).css("background","pink")
          
          //3.其余的兄弟去掉背景颜色 隐式迭代
          
          $(this).siblings("button").css("background","")
          
          })
          
          })
      • jQuery得到当前元素索引号的方法为 $(this).index() 只能获取是兄弟元素的索引号

        • 显示元素show() 隐藏元素hide()

    • 链式编程

      • 链式编程是为了节省代码量,看起来更优雅

        • $(this).css(‘color‘,‘red‘).sibling().css(‘color‘,‘‘)

        • 这句话的代码意思为 我的颜色为红色,我的兄弟的颜色为空

      • 使用链式编程一定注意是哪个对象执行样式

  2. jQuery样式操作

    • 1.操作css方法

      • jQuery可以使用css方法来修改简单元素样式;也可以操作类,修改多个样式
        
        1.1 参数只写属性名,则是返回属性值
        
        $(this).css(‘color‘)
        
        1.2 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
        
        $(this).css("color","red");
        
        1.3 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开,属性可以不用加引号
        
        $(this).css({"color":"white","font-size":"20px"})
    • 2.设置类样式方法

      • 作用等同于以前的classList,可以操作类样式,注意操作类里面的参数不要加点

      • 1.添加类名
        
        $(‘div‘).addClass("current") current是类名
        
        2.删除类名
        
        $(‘div‘).removeClass(‘current‘)
        
        3.切换类名 没有这个类名就加上,有这个类名就删除
        
        $(‘div‘).toggleClass(‘current‘)
    • 3.类操作与className区别

      • 原生JS中className会覆盖元素原先里面的类名

      • jQuery里面类操作只是对指定类进行操作,不影响原先的类名

  3. jQuery效果

    • jQuery给我们封装了很多动画效果,最为常见的如下

    • 显示隐藏效果

      • show() 显示语法规范ho

        • show([speed, [easing],[fn]])

        • 显示参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • hide() 隐藏语法规范

        • hide([speed, [easing],[fn]])

        • 隐藏参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • 显示与隐藏示例代码如下

        • $(function(){
          
              $(‘button‘).click(function(){
          
              $("div").show(1000,function(){
          
              alert(1)
          
                  })
          
              })
          
          })
      • toggle() 切换语法规范

        • toggle([speed, [easing],[fn]])

        • 切换参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • 一般情况下,我们都不加参数直接显示隐藏就可以了

    • 滑动效果

      • slideDown() 下滑效果语法规范

        • slideDown([speed, [easing],[fn]])

        • 下滑效果参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • slideUp() 上滑效果语法规范

        • slideUp([speed, [easing],[fn]])

        • 上滑效果参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • slideToggle() 切换效果语法规范

        • slideToggle([speed, [easing],[fn]])

        • 切换效果参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • 示例代码如下

        • $("div").slideDown(500);

      • 事件切换

        • hover([over,] out)

          • 1.over: 鼠标移动元素上要触发的函数(相当于mouseenter)

          • 2 out: 鼠标移出元素要触发的函数(相当于mouseleave)

        • 示例代码如下

          • $("div").hover(function(){}, function(){})

          • 第一个函数相当于鼠标经过 第二个函数相当于鼠标离开

        • 如果只写一个函数,那么鼠标经过和鼠标离开都会触发这个函数

    • 淡入淡出效果

      • fadeIn() 淡入效果语法规范

        • fadeIn([speed, [easing],[fn]])

        • 淡入效果参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • fadeOut() 淡出效果语法规范

        • fadeOut([speed, [easing],[fn]])

        • 淡出效果参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • fadeToggle() 淡入淡出语法规范

        • fadeToggle([speed, [easing],[fn]])

        • 淡入淡出效果参数

          • 1.参数都可以省略,无动画直接显示。

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000)

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

      • 前三个 示例代码如下

        • $("div").fadeIn(1000)

      • fadeTo() 渐进方式调整到指定的不透明度

        • fadeTo([[speed],opacity,[easing],[fn]])

        • 效果参数

          • 1.opacity透明度必须写,取值0-1之间

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000) 必须写

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • 4.fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

        • 示例代码如下

          • //修改透明度, fadeTo() 这个速度和透明度要必须写

          • $(‘div‘).fadeTo(1000,0.2)

    • 自定义动画

      • animate() 语法如下

        • animate (params,[speed],[easing],[fn])

        • 效果参数

          • 1.params: 想要更改的样式属性,以对象形式传递,必须写。 属性名可以不用带引号,如果是复合属性则需要采取驼峰命名法 borderLeft。其余参数都可以省略

          • 2.speed: 三种预定速度之一的字符串("slow","normal",or "fast")或表示动画时长的毫秒数值(如: 1000) 必须写

          • 3.easing: 用来指定切换效果,默认是"swing", 可用参数"linear"

          • 4.fn: 回调函数,在动画完成时执行的函数,每个元素执行一次

        • 示例代码如下

          • $("div").animage({

          • left: 200 向右移动200px

          • },500)

    • 动画队列及其停止排队方法

      • 1.动画或效果队列

        • 动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行

      • 2.停止排队

        • stop()

        • 1.stop() 方法用于停止动画的或效果

        • 2.注意:stop()必须写到动画或者效果的前面,相当于停止结束上一次的动画

        • 示例代码如下

          • $(this).children("ul").stop().slideToggle(500)

  4. jQuery属性操作

    • 1.设置或获取元素固有属性值prop()

  • 所谓元素固有属性就是元素本身自带的属性,比如< a>元素里面的href,比如< input>元素里面的type

    • 1.获取属性语法如下

      • element.prop("属性名") 获取属性值

    • 2.设置属性语法如下

      • element.prop("属性","属性值")

    • 示例代码如下

      • $("a").prop("href") 获取a标签的href属性

      • $("a").prop("title","我们都挺好") #设置a标签里面的title属性的属性值

  • 2.设置或获取元素自定义属性值attr()

    • 用户自己给元素添加的属性,我们称为自定义属性。比如给div添加index = “1”

    • 1.获取属性语法

      • attr("属性") //类似原生 getAttribute()

      • 2.设置属性语法

        • attr("属性","属性值") //类似原生setAttribute()

      • 该方法也能获取H5自定义属性

    • 3.数据缓冲data()

    • data()方法可以在指定的元素上存取数据,并不会修改DOM元素结构,一旦页面刷新,之前存放的数据都将被移除

      • 1.附加数据语法

      • data("name","value") //向被选元素附加数据

      • 2.获取数据语法

        • data("name") //向被选元素获取数据

      • 同时,还可以读取HTML5自定义属性,data-index. 第一个不用写data- 而且返回的是数字型

    • $(".button:checked")

      • :checked 返回button有几个按钮被选中了

  1. jQuery内容文本值

    • 主要针对元素的内容还有表单的值操作

    • 1.普通元素内容html() (相当于原生innerHTML) 也获取到了里面的标签

      • $(‘div‘).html() //获取元素的内容

      • html("内容") //设置元素的内容

    • 2.普通元素文本内容text() (相当于原生的innerText) 只获取里面的文本内容

      • text() //获取元素的文本内容

      • text("文本内容") //设置元素的文本内容

    • 3.表单的值val() (相当于原生value)

      • val() //获取表单里面的值

      • val("内容") //设置表单里面的值

    • 4.parents("选择器") 可以返回指定祖先元素

    • 5.计算的结果如果想要保留2位小数,通过toFixed(2)方法

    • 6.change事件 当里面的内容发生改变,就会触发这个事件

  2. jQuery元素操作

  • 主要是遍历、创建、添加、删除元素操作

    • 1.遍历元素

      • jQuery隐式迭代是对同一类元素做了同样的操作。如果想要给同一类元素做不同操作,就需要用到遍历

      • 语法1:

        • $("div").each(function(index,domEle){xxx;})

        • 1.each()方法遍历匹配的每一个元素。主要用DOM处理。each每一个

        • 2.里面的回调函数有2个参数:index是每个元素的索引号;demEle是每个DOM元素对象,不是jquery对象

        • 3.所以要想使用jquery方法,需要给这个dom元素转换为jquery对象$(domEle)

      • 语法2:

        • $.each(object,function(index,element) {xxx;})

        • 1.$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组、对象

        • 2.里面的函数有2个参数,index是每个元素的索引号,element遍历内容

    • 2.创建元素

      • 语法:

        • $("< li>< /li>") 这样就动态的生成了一个小li标签

    • 3.添加元素

      • 1.内部添加

        • element.append("内容") 把内容放入匹配元素内部最后面,类似原生appendChild

        • element.prepend("内容") 把内容放入匹配元素内部最前面

      • 2.外部添加

        • element.after("内容") //把内容放入目标元素后面

        • element.before("内容") //把 内容放入目标元素前面

      • 注意:

        • 内部添加元素,生成之后,它们是父子关系

        • 外部添加元素,生成之后,它们是兄弟关系

    • 4.删除元素

      • 1.element.remove() // 删除匹配的元素(本身)

      • 2.element.empty() //删除匹配的元素集合中所有的子节点

      • 3.element.html("") //清空匹配元素内容

 

jQuery事件

  1. jQuery事件注册

    • 1.单个事件注册

      • 语法 element.事件(function(){})

        • $(‘div‘).click(function(){事件处理程序})

      • 其他事件和原生基本一致

        • 比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll等

  2. jQuery事件处理

    • 1.事件处理on() 绑定事件

      • on() 方法在匹配元素上绑定一个或多个事件的事件处理函数

      • 语法

        • element.on(events,[selector],fn)

        • 1.events: 一个或多个用空格分隔的事件类型。如"click" 或"keydown"

        • 2.selector: 元素的子元素选择器

        • 3.fn: 回调函数,即绑定在元素身上的侦听函数

      • 示例代码如下

        • $(‘div‘).on({
          
          mouseenter : function(){},
          
          click : function(){},
          
          mouseout: function(){}
          
          })

           

           

      • on()方法优势1:

        • 可以绑定多个事件,多个处理事件程序

        • 如果事件处理程序相同 示例代码如下

          • $("div").on("mouseover mouseout",function(){
            
            $(this).toggleClass("current")
            
            })
      • on()方法优势2:

        • 可以事件委派操作。事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素

        • 示例代码如下:

          • $("ul").on("click","li",function(){
              alert(11);     click是绑定在ul身上的,但是触发的对象是ul 里面的小li
                                   只有点击ul里面的li标签才会触发事件  这时this指向的是li标签
             })
        • 在此之前有bind(),live(),delegate() 等方法来处理事件绑定或者事件委派,最新版本的请用on替代他们

  • on()方法优势3

    • 动态创建的元素,click()没有办法绑定事件,on()可以给动态生成的元素绑定事件

    • 示例代码如下

      •  $("ol").on("click","li",function(){
               alert(11);
            })
            var li = $("<li>我是后来创建的li</li>")
            $("ol").append(li);
  • 2.事件处理off() 解绑事件

    • off()方法可以移除通过on()方法添加的事件处理程序

    • 示例代码如下

      • $(‘div‘).off(); 解绑div身上的所有事件
        $(‘div‘).off(‘click‘);//这个是解除了div身上的点击事件
        $(‘div‘).off(‘click‘,‘li‘);//解绑事件委托
    • 如果有的事件只想触发一次,可以使用one()来绑定事件

  • 3.自动触发事件 trigger()

    • 有些事件希望自动触发,比如轮播图自动播放功能跟点击右侧按钮一致,可以利用定时器自动触发右侧按钮点击事件,不必鼠标点击触发

      • 第一种简写形式

        • element.click() 会触发元素的默认行为

      • 第二种自动触发模式

        • element.trigger("type") type为触发的事件 会触发元素的默认行为

        • 示例代码如下

          • $(‘div‘).trigger(‘click‘) ;//此时自动触发点击事件,不需要鼠标点击
      • 第三种自动触发模式

        • element.triggerHandle(type) 就是不会触发元素的默认行为

        • 示例代码

          • $(‘div‘).triggerHandle(‘click‘) ;//此时自动触发点击事件,不需要鼠标点击
  1. jQuery事件对象

    • 事件被触发,就会有事件对象的产生

    • 语法格式如下

      • element.on(events,[selector],function(event){})

    • 阻止默认行为L event.peventDefault() 或者return false

    • 阻止冒泡: event.stopPropagetion()

 

jQuery其他方法

  1. jQuery对象拷贝

    • 如果想要把某个对象拷贝(合并)给另外一个对象使用,此时可以使用$.extend()方法

    • 语法:

      • $.extend([deep],target,object1,[objectN])

      • 1.deep: 如果设为true为深拷贝,默认为false 浅拷贝

      • 2.target:要拷贝的目标对象

      • 3.object1:待拷贝到第一个对象的对象

      • 4.objectN: 待拷贝到第N个对象的对象

      • 5.浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象

      • 6.深拷贝,前面加true,完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象,我们里面有不冲突的属性,会合并到一起

    • 示例代码如下

      • var targetObj = {}
        var obj = {
           id:1,
           name: ‘xiaoxin‘
         }
        $.extend(targetObj,obj);    会覆盖targetObj里面的数据
  2. 多库共存

    • 问题概述:

      • jQuery使用$作为标示符,随着jQuery的流行,其他js库也会用这$作为标识符,这样一起使用会引起冲突

    • 客观需求:

      • 需要一个解决方案,让jQuery和其他的js库不存在冲突,可以同时存在,这就叫做多库共存

    • jQuery解决方案

      • 1.把里面的$符号,统一改为jQuery。比如jQuery(‘div‘)

      • 2.jQuery变量规定新的名称: $.noConflict()

        • var xx = $.noConflict()

  3. jQuery插件

    • jQuery功能比较有限,想要更复杂的特效效果,可以借助于jQuery插件完成

    • 注意:这些插件也是依赖于jQuery来完成的,所以必须要先引入jQuery文件,因此也称为jQuery插件

    • jQuery插件常用的网站

    • jQue插件使用步骤:

      • 1.引入相关文件(jQuery文件和插件文件)

      • 2.复制相关html、css、js(调用插件)

      • 3.图片懒加载(图片使用延时加载在可提高网页下载速度,它也能帮助减轻服务器负载)

        • 当我们页面滑动到可视区域,再显示图片。

        • 我们使用jquery插件库EasyLazyload.注意,此时的js引入和js调用必须写到DOM元素(图片)最后面

    • 全屏滚动(fullpage.js)e

  4. jQuery toDolist案例

    • 1.刷新页面不会丢失数据,因此需要用到本地存储localStorage

    • 2.核心思路: 不管按下回车,还是点击复选框,都是把本地存储的数据加载到页面中,这样保证刷新关闭页面不会丢失数据

    • 3.存储的数据格式: var todolist = [{title:‘xxx‘,done:false}]

    • 4.注意点1: 本地存储localStorage里面只能存储字符串格式,因此需要把对象转换为字符串 JSON.stringify(data)

      • localStorage.setItem("todolist", JSON.stringify(data)) 往本地存储里面加数据

      • localStorage.getItem(‘todolist‘); 从本地存储里面取数据

    • 5.注意点2:获取本地存储数据,需要把里面的字符串转换为对象格式JSON.parse()外面才能使用里面的数据

jQuery尺寸、位置操作

  1. jQuery尺寸

    • 语法用法
      width() /height() 取得匹配元素宽度和高度值 只算width/height
      innerWidth() / innerHeight() 取得匹配元素宽度和高度值 包含 padding
      outerWidth() / outerHeight() 取得匹配元素宽度和高度值 包含padding、border
      outerWidth(true) / outerHeight(true) 取得匹配元素宽度和高度值 包含padding、border、margin
    • 注意:

      • 以上参数为空,则是获取相应值,返回的是数字型

      • 如果参数为数字,则是修改相应值

      • 参数可以不必写单位

    • 示例代码如下

      • $(‘div‘).width() //获取div的宽

      • $(‘div‘).width(300) //设置div的宽

  2. jQuery(位置)

    • 位置主要有三个: offset()、position()、scrollTop()/scrollLeft()

    • 1.offset()设置或获取元素偏移

      • 1.1offset()方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系

      • 1.2该方法有2个属性left、top。offset().top 用户获取距离文档顶部的距离。offset().left用于获取距离文档左侧的距离

      • 1.3可以设置元素的偏移 : offset({top:10,left:30});

    • 2.position()获取元素偏移

      • position()方法用于返回被选元素相对于带有定义的父级偏移坐标,如果父级都没有定位,则以文档为准

      • 这个方法只能获取 不能设置偏移

    • 3.scrollTop() /scrollLeft() 设置或获取元素被卷去头部和左侧

      • 1.scrollTop()方法设置或返回被选元素被卷去的头部

        • animate动画函数里面有个scrollTop属性,可以设置位置

        • animate只能是元素才能做动画 document是文档,不能做动画

JQuery

标签:鼠标   定时   删除元素   计算   osi   item   排队   height   使用步骤   

原文地址:https://www.cnblogs.com/fengzi759/p/12123816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!