jQuery笔记

jq概述

JavaScript库:即library,是一个封装好的特定的集合(方法和函数),比如动画animate、hide、show,比如获取元素等

简单理解:就是一个js文件,里面对我们原生js代码进行了封装,存到里面,这样我们可以快速高效的使用这些封装好的功能了

常见的JavaScript库

  • jQuery
  • prototype
  • YUI
  • Dojo
  • Ext JS
  • 移动端的 zepto

jQuery的优点

  • 轻量级。核心文件才十几kb,不会影响页面加载速度
  • 跨浏览器兼容。基本兼容了现在主流的浏览器
  • 链式编程、隐式迭代
  • 对事件、样式、动画支持,大大优化了DOM操作
  • 支持插件扩展开发。有着丰富的第三方插件,例如:树形菜单、日期控件、轮播图等
  • 免费、开源

jQuery的基本使用

DOM对象和jQuery对象相互转换

  • DOM对象转换为jQuery对象:$(DOM对象)

  • jQuery对象转换为DOM对象

    • $(‘div’) [index]

      • index是索引号
    • $(‘div’).get(index)

      • index是索引号

jQuery常用API

jQuery选择器

  • 基础选择器

    • 全选选择器 ------>$(’*’)
    • 类选择器------>$(’.class’)
    • 标签选择器------>$(‘div’)
    • 并集选择器------>$(‘div,p,li’)
    • 交集选择器------>$(‘li.current’)
    • id选择器------>$("#id")
  • 层级选择器

    • 子代选择器

      • $(“ul>li”);

        使用>号,获取亲儿子层级元素

    • 后代选择器

      • $("ul li ");

      使用空格,代表后代选择器

  • 筛选选择器

    • :first

      • 获取第一个li元素 $(‘li:first’)
    • :last

      • 获取最后一个li元素 $(‘li:last’)
    • :ep(index)

      • 获取到的li元素中,选择索引号为2的元素 $(‘li:ep(2)’)
    • :odd

      • 获取到li元素中,选择索引号为奇数的元素 $(‘li:odd’)
    • :even

      • 获取到li元素中,选择索引号为偶数的元素 $(‘li:even’)

jQuery筛选方法(重点)

  • 语法
    用法
    说明

  • parent()

      $('li').parent( );
      查找父级
    
  • children(selector)

      $('ul').children('li')相当于 	
      $('ul>li'),最近一级(亲儿子)
    
  • find(selector)

      $('ul').find('li')
      相当于$('ul li'),后代选择器 后代全被选
    
  • siblings(selector)

      $('.first').siblings('li')
      查找兄弟节点,不包括自己本身
    
  • nextAll([espr])

      $(.first).nextAll()
      查找当前元素之后所有的同辈元素
    
  • prevtAll([expr])

      $('.last').prevAll()
      查找当前元素之前所有的同辈元素
    
  • hasClass(class)

     $('div').hasClass('protected')
     检查当前的元素是否有某个特定的类,如果有则返回true
    
  • ep(index)

      $("li").ep(2); 
      相当于$('li:ep(2)'),index从0开始
    

jQuery样式操作

  • jQuery设置样式

    • $(‘div’).css(‘属性’, ‘值’)
  • 隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法

  • 操作css方法

    • $(this).css(“color”);

      • 参数只写属性名,则返回属性值
    • $(this).css(“color”, “red”);

      • 参数是属性名,属性值,逗号分隔,是设置一组样式
    • $(this).css({“color”:“white”, “font-size”:“20px”});

      • 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开,属性可以不用加引号
  • 设置类样式方法

    • $(“div”).addClass(“current”);

      添加类‘

    • $(“div”).removeClass(“current”);

      删除类

    • $(“div”).toggleClass(“current”);

      切换类

jQuery效果

  • 显示隐藏效果

    • 显示

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

        • 参数可以省略
        • speed:三种预定速度之一的字符串(“show”,“normal”,or “fase”)或表示动画时长的毫秒数值(如:1000)
        • easing:(Optional)用来指定切换效果,默认是“swing”,可用参数“linear”
        • fn:回调函数,在动画完成时执行的函数,每个元素执行一次
    • 隐藏

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

        • 参数可以省略
        • speed:三种预定速度之一的字符串(“show”,“normal”,or “fase”)或表示动画时长的毫秒数值(如:1000)
        • easing:(Optional)用来指定切换效果,默认是“swing”,可用参数“linear”
        • fn:回调函数,在动画完成时执行的函数,每个元素执行一次
    • 切换

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

        • 参数可以省略
        • speed:三种预定速度之一的字符串(“show”,“normal”,or “fase”)或表示动画时长的毫秒数值(如:1000)
        • easing:(Optional)用来指定切换效果,默认是“swing”,可用参数“linear”
        • fn:回调函数,在动画完成时执行的函数,每个元素执行一次
    • 上滑动

      • slideDown([speed, [easing], [fn]])
    • 下滑动

      • slideUp([speed, [easing], [fn]])
    • 滑动切换

      • slideToggle([speed, [easing], [fn]])
  • 淡入淡出效果

    • 淡入效果

      • fadeIn([speed, [easing], [fn]])
    • 淡出效果

      • fadeOut([speed, [easing], [fn]])
    • 淡入淡出切换

      • fadeToogle([speed, [easing], [fn]])
    • 修改透明度

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

        • opacity透明度必须写,取值0~1之间
        • speed:三种预定速度之一的字符串(“show”,“normal”,or “fase”)或表示动画时长的毫秒数值(如:1000) 必须写
        • 速度和透明度必须要写
  • 自定义动画animate

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

      • params:想要更改的样式属性,以对象形式传递,必须写。属性名可以不用带引号,如果是复合属性则需要采取骆驼命名法
  • 事件切换

    • hover

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

    • 停止排队

      • stop()

        • stop()方法用于停止动画或效果
        • 注意:stop() 一定要写到动画或者效果前面,相当于停止结束上一次的动画

jQuery属性操作

jQuery文本属性值

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(objact, function (index, element) {xxx; })
1、$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组、对象
2、里面的函数有2个参数:index是每个元素的索引号;element遍历内容
  • 创建元素
  $("<li></li>");
  • 添加元素

    • 内部添加

      • element.append(“内容”)

        • 放到内容最后面
      • element.prepend(“内容”)

        • 放到内容最前面
    • 外部添加

      • element.after(“内容”)

        • 把内容放到目标元素最后面
      • element.before(“内容”)

        • 把内容放到目标元素最前面
    • 内部添加元素,生成之后,他们是父子关系

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

  • 删除元素

    • element.remove()

      • 删除匹配的元素(本身)
    • element.empty()

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

      • 清空匹配元素内容

jQuery尺寸、位置操作

jQuery事件

事件注册

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

事件处理

  • on() 绑定事件

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

      • events:一个或多个用空格分隔的事件类型,如click或keydown
      • select:元素的子元素选择器
      • fn:回调函数 即绑定在元素身上的侦听函数
  • off解绑事件

    • $(“p”).off() // 解绑p元素所以事件处理程序
    • $(“p”).off(“click”) // 解绑p元素上面的点击事件 后面的off是侦听函数名
    • $(“p”).off(“click”, “li”) //解绑事件委托
  • 自动触发事件

    • element.click() // 第一种简写形式
    • element.trigger(“type”) // 第二种自动触发方式
    • element.triggerHandler(“type”) // 第三种自动触发方式

事件对象

  • 阻止默认行为:event.preventDefault() 或者 return false
  • 阻止冒泡:event.stopPropagation()

jQuery其他方法

jQuery拷贝对象

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

    • deep:如果设为true为为深拷贝,默认false 浅拷贝
    • 浅拷贝是把被拷贝的对象复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象
    • 深拷贝,前面加true,完全克隆(拷贝的对象,而不是地址),修改目标对象不会影响被拷贝对象
    • target:要拷贝的目标对象
    • object1:待拷贝到第一个对象的对象
    • 子主题 6

多库共存

  • 如果有冲突,可以把$符号统一改为jQuery
  • 或者自己定义,$.noConflict();

jQuery插件

jQuery尺寸和位置操作

jQuery尺寸

  • width() / height()

    • 取得匹配元素宽度和高度值 只算width height
  • innerWidth() / innerHieght()

    • 取得匹配元素宽度和高度值 包含padding
  • outerWidth() / outerHeight()

    • 取得匹配元素宽度和高度值 包含padding 、border
  • outerWidrh(true) / outerHeight(trye)

    • 取得匹配元素宽度和高度值 包含padding 、border、margin

jQuery位置

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

    • offset方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系
    • 该方法有两个属性left、top。offset().top用于获取距离文档顶部的距离,offset().left用于获取距离文档左侧的距离
    • 可以设置元素偏移:offset({top:10, left: 30});
  • position()获取元素偏移

    • 这个方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准
  • scrollTop()/scrollLeft()设置或获取被卷去的头部和左侧

    • scrollTop()方法设置或返回被选元素被卷去的头部
上一篇:Python游戏开发(一)


下一篇:dearpygui-0.6.6 以前的蛇变成了这个样子