- 总结要求
- 为什么使用jq
- jq的使用注意点
- jq入口函数的使用
- jq入口函数与window.onload区别
- jq中的$
- jQuery对象和Dom对象的区别
- jQuery对象转化为DOM对象
- jQuery 选择器
- 层级选择器
- 案例
- mouseover mouseenter 却别
- index
- 方法
- 10/24/2016 5:48:51 PM
10/24/2016 8:40:13 AM
总结要求
- 学会使用jquery(基本使用)
- 使用jquery设计常见的效果
为什么使用jq
- 什么是jq
- js query
- 其实就是一个js库,实现了平时开发中常用的功能
- 方便我们调用,提高效率
- js库,他把一些功能封装到一个文件中,将来在用的时候直接拿过来使用即可。
- 已经实现过的库:animate commom.js
- 其实jq就是跟animate.js一样,都是一个库,只不过自己实现的库没jq大而已。
jq的基本使用
- 引入jq文件
- 入口函数
- 实现我们功能的代码
学习jq主要学习什么内容
- 什么是jq
- jQuery其实就是一个javascript的(类)库, 实现了平时开发过程中常用的功能(方法)
- 方便了我们来调用,提高了我们的开发效率!
- 学习jQuery主要学习什么内容
- 就是学习jQuery这个库中提供的一系列的方法( API )
- jQuery中几乎所有的操作都是方法,一定要带小括号来调用方法!
- jQuery中的三个版本说明
- v1 兼容性非常好,能够兼容IT6-8,其他浏览器全部都支持
- v2 3兼容ie9以上
正常,min,slim区别
- v3种slim版本去掉了不常用的功能移除了,这样让文件变得更小,更利于在移动端使用
- 如果载想使用这些功能,去jq官网找到这些功能即可。
- 相同版本的两个文件的区别,带min和没min,带min的表示是压缩过的
- 压缩的目的,让js/css/html文件变得更小,这样就能够在更短的时间内加载出来
- 压缩就是把js文件中空格、换行符、变量名等,移除或者替换为更短的字符
- 选择
- 同版本的文件
- 开发过程中使用哪个都可以,但是在项目上线的时候,一定要使用压缩版
- 同版本的文件
jq的使用注意点
- 在使用之前,一定是,先引用jq文件然后再使用
- 常见的错误
- $ is not defiend
- 错误原因:jq文件没有引入,就是用jq文件没有引用
- 也不要,先使用jq代码,再引用文件
- err file not found
- 错误原因 :路径写错了
- $ is not defiend
jq入口函数的使用
- 定义入口函数的两种形式
$(document).ready(function() {});
- 相当于window.onload = function(){}
- 就是看文档有没有准备好
- document:文档
- ready:准备好了吗?
$(function() {})
-
以上两种实现jQuery入口函数的形式,作用是相同的
- 作用: 作用:等到页面文档加载完成了,在执行事件处理程序中的代码!
jq入口函数与window.onload区别
- 入口函数的执行时机不同
- window.onload: 是要等到页面文档以及页面中所有的外部资源,(引入的js文件、css、img)全部加载完成之后,才会执行事件中的代码!
- jQuery的入口函数:是等到页面文档树加载完成就会执行事件中的代码!
- jQuery的入口函数要比 window.onload 执行的时机要早
- 书写的个数不同
- window.onload 只能绑定一次事件,如果绑定多次,后面的事件会覆盖前面的事件
- jQuery的入口函数可以有多个
jq中的$
- jquery中的$说明
- 其实,jQuery中的$符号就是一个函数,没有什么特别的地方!
- 同一个$函数,根据传入的参数不同,实现不同的调用效果!
- jQuery中不仅提供了 $ 符号来引用整个jQuery库,还提供了另外一个: jQuery,也能够引用整个jQuery库。(也就是能够使用jQuery中的代码)
- 使用jQuery这个函数,就跟使用$符号,完全相同!
- 注意: jQuery 是这个函数的名字,所以是区分大小写的!
- js变量的命名规范
- 字母数字下划线$
- 不能以数字开头
jQuery对象和Dom对象的区别
- DOM对象就相当于 衣服
- jQuery对象就相当于 洗衣机
- 什么是DOM对象?
- 通过DOM提供的API(方法),获取到的元素对象,就是DOM对象
- 获取DOM对象的方法
- getElementById(“id”) 获取到的元素就是一个DOM对象
- getEelmentsByTagName(“div”) 这个方法的返回值是一个伪数组
- 伪数组中的每一个元素才是DOM对象
- getEelmentsByTagName(“div”)[0] 这才是DOM对象
- DOM对象的特点:具有innerText/innerHTML/style/value/className/getAttribute()这些属性和方法
- 什么是jQuery对象?
- 通过jQuery获取元素的方法,获取到的对象就是jQuery对象
- 获取jQuery对象的方法:
- $(“#dv”) / $(“div”) 通过这种方法获取到的对象,就是jQuery对象
- jQuery对象的特点: show() / text()
- 注意:
- DOM对象中没有jQuery对象中的属性和方法,所以不能调用
- jQuery对象中也没有DOM对象中的属性和方法,所以也不能使用!
jQuery对象转化为DOM对象
- jq对象转换为dom对象
- 说白了就是从jQuery对象中取出DOM对象
- jQuery对象中就是一个一个的DOM对象,所谓的转化:
- 其实就是 将 DOM对象从 jQuery对象中取出来
- 类比:从洗衣机中取衣服!
- 例子
-
jq转换成dom
var $dv = $("div"); var dv1 = $dv[0]; var dv2 = $dv[1]; var dv3 = $dv[2];
-
DOM对象转化为jQuery对象 -只需要将DOM对象当作参数传给 $函数即可!
var dv = document.getElementsByTagName("div")[0]; var $dv1 = $(dv);
-
10/24/2016 2:30:09 PM
jQuery 选择器
- 概念
- 就是jQuery中提供的用来获取页面中的DOM元素的一些字符串
- 一般配合 $( 选择器 ) 这样调用,就能获取到页面中的元素了!
jq基本选择器
- 基本选择器
- id选择器
- 作用:匹配到页面中id为指定值的DOM元素,获取之后,是一个jQuery对象($(“#cc”))
- id选择器
- jQuery中设置样式的方法:
- $(“#cc”).css(“background”,”red”)
- 第一参数:要设置的样式属性的名称
- 第二个参数:要设置的样式属性的值
- 只有jQuery对象才能使用这个方法
- 标签选择器
- $(“li”)
- 作用:匹配页面中指定标签名的元素
- 类选择器
- $(“.cc”)
- 作用:匹配页面中指定类名的元素(只要具有这个类就能够获取到)
- 通配符选择器
- $(“*”)
- 作用:获取页面中所有的元素
- 尽量少用,获取配合其他的选择器来使用
- 并集选择器
- 符号,
- $(“li,p”)
- 作用:将 以,分割的多个选择器匹配的元素 一起返回
- 比如:”li,p”,获取li和p
- 交集选择器
- $(“p.hot”)
- 作用: 选择p标签并且class为hot的元素,进行设置样式
层级选择器
- 子代选择器(直接关系)
-
- $(“#cc>li”)
- 作用:获取父元素中的子元素
- children()
-
- 后代选择器
- $(“#cc li”)
- 空格
- 作用:获取父元素中的所有后代元素(也包含了子元素)
- find(”li”)注意: 参数是必须传入的
过滤选择器
- :odd 奇数行选择器,配合其他的选择器来使用
- 作用:获取索引号为奇数行的所有元素
- :even 偶数行选择器
- 作用:获取索引号为偶数行的所有元素
- :eq(index) ==> equals 相等
- index:表示索引号
- 作用:选择指定索引号的元素
- 对应的方法:jq对象.eq(index)
- :gt(index)
- 作用:大于index的
- 使用过滤器实现隔行变色 ——– /使用过滤选择器/ $(“li:odd”).css(“background”,”red”); $(“li:even”).css(“background”,”green”);
属性选择器
- 选择具有id属性的所有元素
$("li[id]").css("color", "red");
案例
下拉菜单案例
$(".wrap>ul>li").mouseenter(function(){
// 问题:怎么获取到当前元素(一级菜单)
// this ===> 是一个DOM对象
// $(this) 这就是将DOM对象this转化为jQuery对象this
// 给哪个DOM对象绑定的事件,事件中的this就是谁!
//
// $("div").children()
// children() 方法的作用:用来获取某个jQuery对象的子元素
// 这个方法可以传入一个参数: 选择器!一般情况下就是基本选择器!
// $(this).children("ul") 这句话的意思就是:
// 获取当前元素中的子元素 ul
$(this).children('ul').show();
});
突出显示案例
// 如何获取到当前元素的所有兄弟元素:
// $(this).siblings("li") 这个方法的参数是可以省略的
// 作用:用来获取当前元素的所有兄弟元素
$(this).css("opacity",1).siblings('li').css("opacity",.3);
});
$(".wrap").mouseleave(function(){
//搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。
$(this).find('li').css("opacity",1);
})
淘宝精品服饰案例
<script src="../jquery-1.12.4.js"></script>
<script>
// 第二步:入口函数
$(document).ready(function() {
// 思路:
// 1 获取到左侧所有的li元素,并绑定鼠标移上来的事件
// 2 获取到当前元素的索引号,将索引号与中间内容区域的元素的索引号
// 对应,然后,将对应的这个元素展示出来,兄弟元素隐藏掉
// 1 获取到左侧所有的li元素,并绑定鼠标移上来的事件
$("#left").children("li").mouseenter(function() {
// 2 获取到当前元素的索引号,将索引号与中间内容区域的元素的索引号
// 对应,然后,将对应的这个元素展示出来,兄弟元素隐藏掉
// index() 作用:就是来获取当前元素的索引号!
// $(this).index();
// 索引号是相对于谁来计算的? 相当于当前元素的兄弟元素来计算的
// 其实就是当前元素在兄弟元素中的位置(从0计算)
var index = $(this).index();
// console.log(index);
// 2.1 获取到中间内容区域的所有元素
// $("#center").children('li')
// "#center > li:eq(index)" 作用:用来获取#center中的所有li元素并且
// 这个li的索引号是:index 才能被获取到!
// $("#center > li:eq(" + index + ")").show().siblings().hide();
// jQuery中也提供了一个叫做.eq() 方法
// 这个方法的作用跟 ":eq(index)" 选择器是相同
$("#center").children('li').eq(index).show().siblings().hide();
});
// 3 实现给右边的导航绑定事件
$("#right > li").mouseenter(function() {
// 获取到当前元素的索引号
var index = $(this).index() + 9;
$("#center > li:eq(" + index +")").show().siblings("li").hide();
});
});
</script>
mouseover mouseenter 却别
- 这两个鼠标的移入事件
- mouseover 会触发冒泡,子元素触发的事件,会冒泡到父元素,将父元素的onmouseover事件触发
- mouseenter不会触发冒泡机制
index
- index()的作用:就是来获取当前元素的索引号
- 索引号是相对于谁来计算的?相当于当前元素的兄弟元素
- 其实就是当前元素在兄弟元素中的位置
方法
- css(属性名,属性值)
- index()用来获取指定元素的索引号
- siblings()用来获取指定元素的兄弟元素
- 一般就是获取某一个元素的兄弟元素
10/24/2016 5:48:51 PM
10/24/2016 9:50:26 PM 进行整理完成