jQuery 常用API
1.jQuery 选择器
1.1 jQuery 基础选择器
$(“选择器”) // 里面选择器直接写 CSS 选择器即可,但是要加引号
1.2 jQuery 层级选择器
1.2.1 jQuery 设置样式
$('div').css('属性', '值')
1.3 隐式迭代(重要)
遍历内部 DOM 元素(伪数组形式存储)的过程就叫做隐式迭代。
简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。
// 1. 获取四个div元素
console.log($("div"));
// 2. 给四个div设置背景颜色为粉色 jquery对象不能使用style
$("div").css("background", "pink");
// 3. 隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法
$("ul li").css("color", "red");
1.4 jQuery 筛选选择器
1.5 jQuery 筛选方法(重点)
重点记住: parent() children() find() siblings() eq()
1.6 jQuery 里面的排他思想
想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。
$(this).css(“color”,”red”);
$(this).siblings(). css(“color”,””);
案例:
淘宝服饰精品案例
1.7 链式编程
$(this).css('color', 'red').sibling().css('color', '');
要注意是给同一个对象添加操作
2. jQuery 样式操作
2.1 操作 css 方法
可以用来修改简单样式,也可以用来修改类
方法1:
$("div").css("width", "300px");//只写属性名,则是返回属性值
方法2:以对象的方式,属性名和值用冒号隔开
$("div").css({ width: 400,
backgroundColor: "red"//如果是复合属性则必须采取驼峰命名法,如果值不是数字,则需要加引号
})
2.2 设置类样式方法
添加 、移除 、切换类
$(“div”).addClass(''current'');
$(“div”).removeClass(''current'');
$(“div”).toggleClass(''current'');
案例:tab 栏切换
类操作与className区别:
- 原生 JS 中 className 会覆盖元素原先里面的类名。
- jQuery 里面类操作只是对指定类进行操作,不影响原先的类名。
3. jQuery 效果
3.1 显示隐藏效果
显示、隐藏、切换语法规范
show([speed,[easing],[fn]])
hide([speed,[easing],[fn]])
toggle([speed,[easing],[fn]])
3.2 滑动效果
上滑、 下滑、切换语法规范
slideUp([speed,[easing],[fn]])
slideDown([speed,[easing],[fn]])
slideToggle([speed,[easing],[fn]])
(1)参数可以省略
(2)speed:速度(“slow”,“normal”, “fast”),或者用毫秒表示
(3)easing:指定切换效果(“swing”,“linear”)
(4)fn:回调函数
3.3 事件切换
hover([over,]out)
(1)over:鼠标移到元素上要触发的函数(相当于mouseenter) (2)out:鼠标移出元素要触发的函数(相当于mouseleave) (3)如果只写一个函数,则鼠标经过和离开都会触发它
3.4 动画队列及其停止排队方法
动画触发就会执行,多次触发造成动画排队执行
stop() // 写到动画或者效果的前面 相当于停止结束上一次的动画
3.5 淡入淡出效果
淡入、淡出、 淡入淡出切换语法规范
fadeIn([speed,[easing],[fn]])
fadeOut([speed,[easing],[fn]])
fadeToggle([speed,opacity,[easing],[fn]])
渐进方式调整到指定的不透明度
fadeTo([[speed],opacity,[easing],[fn]])
opacity 透明度必须写,取值 0~1 之间
3.6 自定义动画 animate
$("元素").stop().animate(params,[speed],[easing],[fn])
params: 想要更改的样式属性,以对象形式传递,必须写。
animate只对元素做动画,不能是文档
案例:王者荣耀手风琴效果
4. jQuery 属性操作
4.1 设置或获取元素固有属性值 prop()
prop(''属性'', ''属性值'')//不带属性值就是获取
4.2 设置或获取元素自定义属性值 attr()
attr(''属性'', ''属性值'')//不带属性值就是获取
自定义属性如给 div 添加 index =“1”,该方法也可以获取 H5 自定义属性
4.3 数据缓存 data()
在指定的元素上存取数据,不会修改 DOM 元素结构
页面刷新,之前存放的数据都将被移除
data(''name'',''value'')//不带value属性就是获取
读取 HTML5 自定义属性 data-index ,得到的是数字型
案例:购物车案例模块-全选
5. jQuery 内容文本值
对元素的内容还有表单进行操作
1.普通元素内容 html()( 相当于原生inner HTML)
html(''内容'')//不带内容就是获取
2.普通元素文本内容 text() (相当与原生 innerText)
text(''文本内容'')//不带内容就是获取
3.表单的值 val()( 相当于原生value)
val(''内容'') // 不带内容就是获取
案例:购物车案例模块-增减商品数量-修改商品小计
5.1 返回指定祖先元素
描述:找到每个span的所有是p元素的祖先元素。
$("span").parents("p")
6. jQuery 元素操作
主要是遍历、创建、添加、删除元素操作
6.1 遍历元素
语法1:
var arr = ["red", "green", "blue"];
$("div").each(function (index, domEle) {
$(domEle).css("color", arr[index]);
})
语法2:
$.each(object,function (index, element) { xxx; })
1.each() 方法遍历匹配的每一个元素。主要用DOM处理
2.$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象
3. index 是每个元素的索引号; element 遍历内容;demEle 是每个DOM元素对象,需要给这个dom元素转换为jquery对象 $(domEle)
6.2 创建元素
var li = $(''<li></li>'');
6.3 添加元素
1.内部添加
element.prepend(''内容'')//放入匹配元素内部最前面
element.append(''内容'') //放入匹配元素内部最后面
2.外部添加
element.before(''内容'') // 把内容放入目标元素前面
element.after(''内容'') // 把内容放入目标元素后面
① 内部添加元素,生成之后,它们是父子关系。
② 外部添加元素,生成之后,他们是兄弟关系。
6.4 删除元素
element.remove() // 删除匹配的元素(本身)
element.empty() // 删除匹配的元素集合中所有的子节点
element.html('''') // 清空匹配的元素内容,也可设置内容
案例:购物车案例模块-删除商品模块-选中商品添加背景
7. jQuery 尺寸、位置操作
7.1 jQuery 尺寸
以上参数为空,则是获取相应值,参数可以不带单位
7.2 jQuery 位置
1.offset() 设置或获取元素偏移,元素属性可以以对象的方式修改
2.position() 获取元素偏移,只能获取,不能修改
① offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
②position() 方法相对于带有定位的父级偏移坐标,,如果父级都没有定位,则以文档为准。
② 有2个属性 left、top。
③ offset({ top: 10, left: 30 });position() 方法只能获取。
3.scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧
①不跟参数是获取,参数为不带单位的数字则是设置被卷去的头部
②也可设置页面打开时直接跳转
案例:带有动画的返回顶部
①animate动画函数带有scrollTop()属性,可以设置位置
②元素做动画,所以要转换为Dom元素
$(".back").click(function() {
// $(document).scrollTop(0);
$("body, html").stop().animate({
scrollTop: 0
});
// 不能是文档而是 html和body元素做动画
案例:品优购导航栏
8.节流阀 互斥锁
思想:
var flag = true
当我们点击了小li 此时不需要执行 页面滚动事件里面的 li 的背景选择,在点击事件中将flag值改为false,在动画完成之后滚动到相应位置再将flag的值改为true。在进行滚动事件时,对flag的值进项判断,来改变类。