jQuery学习小结

jQuery

jquery网址 https://api.jquery.com/

jQuery基本使用

  • jQuery入口函数

    $(function(){…})
    $(document).ready(function(){…})
    相当于原生js中的DOMcontentloaded事件

  • jQuery对象和DOM对象之间转换

    DOM对象转jQuery对象 $(dom对象)
    jQuery对象转DOM对象的两种方式
    $(“div”)[i] // i是索引号
    $(“div”).get(i)

  • 推荐使用双引号,和原生js区分一下

    小技巧*****
    隐式迭代中,$(this)是指向正在调用方法的dom对象
    $(this).index()得到当前指向的dom对象的索引号

常用API

jQuery常用选择器

$('选择器') //里面写css选择器即可

刷选选择器
:first :last :eq(index) :odd :even  例子:$('li:eq(2)') 

筛选方法
.parent() 查找最近一级父级   父
.parents("li") 返回指定的祖先级li

.children('li')最近一级子级li   子
.find('li')找后代li  子孙

.siblings('li')找兄弟不含自己   兄弟
.nextAll()本元素之后的所有同辈元素  
.prevtAll()本元素之前所有同辈 

.hasClass('class') 当前元素是否有特定的类
.eq(index) 相当于$('li:eq(index)') 索引从0开始
-----------更多的选择器查看官网或手册-----------------

jQuery样式操作

简单操作,使用css方法修改元素样式

 $('选择器').css('属性','值')
 
隐式迭代,遍历内部DOM元素的过程
简单理解:给匹配到的元素循环遍历执行相应方法,不需要额外循环,简化操作

注意:
	1.参数只写属性名,则返回属性值
	2.逗号分隔,值如果是数字可以不用跟单位和引号
	3.参数可以是对象形式,设置多组样式 {'color':'#fff','font-size':'20px'}属性可以不加引号,复合属性则必须采用驼峰命名法,值不是数字要加引号

复杂操作,操作类修改多个样式

作用等同于以前的classList,这里的语法里面的参数不要加点
添加类 $('div').addClass('current');
删除类 $('div').removeClass('current');
切换类 $('div').toggleClass('current');

jQuery效果

显示隐藏

show([speed,[easing],[fn]])  显示
可选参数speed slow normal fast或者毫秒值
可选参数easing 默认swing   linear
回调函数fn 动画完成后执行,每个元素执行一次
hide([speed,[easing],[fn]])  隐藏
toggle([speed,[easing],[fn]]) 显示隐藏切换

滑动

s速度("slow","normal", or "fast")或者毫秒值 e切换效果,默认"swing"可选"linear" 回调是每个元素一次
slideDown(s,e,fn)
slideUp(s,e,fn)
slideToggle(s,e,fn) 

事件切换(鼠标经过的复合写法)

hover([over,]out)
hover(function(){..},function(){..})分别是鼠标经过和离开的处理函数
如果只写一个函数,经过和离开都会触发函数

动画队列或效果队列,解决短时间内多次触发问题

stop() 停止动画或效果
写在动画或效果之前,相当于停止上一次动画
链式编程:stop().slideToggle();

淡入淡出

fadeIn(s,e,fn),fadeOut(s,e,fn),fadeToggle(s,e,fn)
fadeTo(s,opacity,e,fn) 渐进调整到指定不透明度 速度和opacity必须写,opacity取值0~1

自定义动画

animate(params,[speed],[easing],[fn])
params:一组包含作为动画属性和终值的样式属性和及其值的集合
speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000) 
easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing"
fn:在动画完成时执行的函数,每个元素执行一次

params必须写,以对象形式传递,如果是属性名可以不带引号,想要修改的样式属性,复合属性要使用驼峰命名法

jQuery属性操作

jQuery常用三种属性操作prop()/attr()/data()

prop("属性") 获取元素固有属性  prop("属性","属性值") 设置修改固有属性
attr("属性") 获取元素自定义属性 attr("属性","属性值") 设置修改自定义属性

data() 
数据缓存,不修改DOM元素结构,页面刷新,数据消失 
data(key,value) 存储数据  data(key) 获取数据
还可以读取 HTML5 自定义属性  data-index ,data("index")得到的是数字型

jQuery文本属性值

jQuery的文本属性值常见操作有三种:html() / text() / val()

html()  对应js的innerHTML   html() 获取元素内容 html("内容")设置元素内容
text()  对应js的innerText  获取和设置文本内容
val() 对应js的value  表单中通过value来获取和设置值

clone([Even[,deepEven]])  $("div").clone()复制自己  $("div").clone(true)复制自己并复制功能

jQuery元素操作

遍历元素(使用场景:给同一类元素做不同的操作)
$("div").each(function(index,domELe){.....})用于遍历 jQuery 对象
$.each(obj,function(i,e){.....}) 用于遍历任何对象

创建元素
var li = $("<li></li>");

添加元素
内部添加 $("ul").append(li);//放到内容最后面  $("ul").prepend(li);//放到内容的最前面
外部添加  $("div").after($("<div></div>"));  $("div").before($("<div></div>"));

删除元素
$("ul").remove(); //删除自己
ele.empty(); //清空所有的子节点
ele.html(""); //清空元素内容 和empty相似

jQuery尺寸/位置操作

width([val|fn])/height([val|fn]) 参数为空返回元素宽高 参数为数值则修改 参数可不写单位
	function(index, height){} 回调参数:索引位置,旧的高度值
innerWidth()/innerHeight() 返回元素宽高 包含padding值 参数为数值则修改
outerWidth/outerHeight() 返回元素宽高 包含padding border大小
outerWidth(true)/outerHeight(true) 获取位置 宽高+padding+border+margin

offset() 获取元素在当前视口的相对偏移 .offset().top .offset().left    .offset({top:100,left:100})
position() 获取距离带有定位父级的距离,如果没有带定位的父级,以文档为准,这个方法只能获取,不能设置
scrollTop() 获取被卷去头部的距离  设置被卷去头部距离
scrollLeft()

跳回头部,可以使用animate动画函数,
$("body,html").stop().animate({scrollTop:0})

jQuery事件

事件注册

单个事件注册,类似原生js
单多个事件注册  ele.on(events,[selector],fn) 
	优势1.绑定一个或多个事件的事件处理函数
		处理函数不同,传入对象{mouseenter:function(){..},mouseleave:function(){..}}
		处理函数相同,$("div").on("mouseenter mouseleave",function(){..})
	优势2.事件委托
		$("ul").on("click","li",function(){..})事件绑在ul上,触发对象是li,事件冒泡到父级
	优势3.可给未来动态创建的元素都绑定事件(利用事件委托的特性)
off()解绑事件
	.off()解除所有事件
	.off("click")解除click事件
	.off("click","li")解除click的事件委托
one()绑定事件  使用和on()基本一致 只能触发一次

事件处理

自动触发事件(用代码来手动触发)
	ele.click() 
	ele.trigger("click")
	ele.triggerHandler("click")  //不会触发元素的默认行为

事件对象

阻止默认行为 阻止冒泡 
event.preventDefault() event.stopPropagation()

jQuery其他

拷贝对象

$.extend([deep],target,object1,[objectN])  拷贝到target对象上,有同样的key会覆盖target的value
deep true深拷贝 false浅拷贝 默认false

多库共存

1.jQuery解决方案:$统一写为jQuery
2.jQuery释放$符号:$.noConflict()   var 新的符号 = $.noConflict();

jQuery插件

jQuery之家http://www.htmleaf.com/

jQuery插件库http://www.jq22.com/

全屏滚动

fullPage.js  github.com/alvarotrigo/fullPage.js
中文翻译网站 www.dowebok.com/demo/2014/77/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值