jQuery 常用API
1.1 jQuery 基础选择器
原生 JS 获取元素方式很多,很杂,而且兼容性情况不一致,因此 jQuery 给我们做了封装,使获取元素统一标准。
1.2 jQuery 层级选择器
知识铺垫
jQuery 设置样式
1.3 隐式迭代
遍历内部 DOM 元素(伪数组形式存储)的过程就叫做隐式迭代。
简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化我们的操作,方便我们调用。
1.4 jQuery 筛选选择器
1.5 jQuery 筛选方法
重点记住: parent() children() find() siblings() eq()
1.6 jQuery 里面的排他思想
想要多选一的效果,排他思想:当前元素设置样式,其余的兄弟元素清除样式。
案例:淘宝服饰精品案例
- 核心原理:鼠标经过左侧盒子某个小li,就让内容区盒子相对应图片显示,其余的图片隐藏。
- 需要得到当前小li 的索引号,就可以显示对应索引号的图片
- jQuery 得到当前元素索引号 $(this).index()
- 中间对应的图片,可以通过 eq(index) 方法去选择
- 显示元素 show() 隐藏元素 hide()
链式编程
链式编程是为了节省代码量,看起来更优雅。
使用链式编程一定注意是哪个对象执行样式。
jQuery 可以使用 css 方法来修改简单元素样式; 也可以操作类,修改多个样式。
1. 参数只写属性名,则是返回属性值
2. 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
3. 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开, 属性可以不用加引号
作用等同于以前的 classList,可以操作类样式, 注意操作类里面的参数不要加点。
1. 添加类
2. 移除类
3. 切换类
案例:tab 栏切换
点击上部的li,当前li 添加current类,其余兄弟移除类。
点击的同时,得到当前li 的索引号
让下部里面相应索引号的item显示,其余的item隐藏
2.3 类操作与className区别
原生 JS 中 className 会覆盖元素原先里面的类名。 jQuery 里面类操作只是对指定类进行操作,不影响原先的类名。
jQuery 给我们封装了很多动画效果,最为常见的如下:
3.1 显示隐藏效果
1. 显示语法规范
2. 显示参数
(1)参数都可以省略, 无动画直接显示。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 隐藏语法规范
2. 隐藏参数
(1)参数都可以省略, 无动画直接显示。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 切换语法规范
2. 切换参数
(1)参数都可以省略, 无动画直接显示。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。 建议:平时一般不带参数,直接显示隐藏即可。
1. 下滑效果语法规范
2. 下滑效果参数
(1)参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 上滑效果语法规范
2. 上滑效果参数
(1)参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 滑动切换效果语法规范
2. 滑动切换效果参数
(1)参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
3.3 事件切换
(1)over:鼠标移到元素上要触发的函数(相当于mouseenter)
(2)out:鼠标移出元素要触发的函数(相当于mouseleave)
(3)如果只写一个函数,则鼠标经过和离开都会触发它
3.4 动画队列及其停止排队方法
1. 动画或效果队列
动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行。
2. 停止排队
(1)stop() 方法用于停止动画或效果。
(2) 注意: stop() 写到动画或者效果的前面, 相当于停止结束上一次的动画。
3.5 淡入淡出效果
1. 淡入效果语法规范
2. 淡入效果参数
(1)参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 淡出效果语法规范
2. 淡出效果参数
(1)参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 淡入淡出切换效果语法规范
2. 淡入淡出切换效果参数
(1)参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 渐进方式调整到指定的不透明度
2. 效果参数
(1)opacity 透明度必须写,取值 0~1 之间。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。必须写
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
1. 语法
2. 参数
(1)params: 想要更改的样式属性,以对象形式传递,必须写。 属性名可以不用带引号, 如果是复合属性则需要采取驼峰命名法 borderLeft。其余参数都可以省略。
(2)speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
(3)easing:(Optional) 用来指定切换效果,默认是“swing”,可用参数“linear”。
(4)fn: 回调函数,在动画完成时执行的函数,每个元素执行一次。
案例:王者荣耀手风琴效果
鼠标经过某个小li 有两步操作:
当前小li 宽度变为 224px, 同时里面的小图片淡出,大图片淡入
其余兄弟小li宽度变为69px, 小图片淡入, 大图片淡出
4.1 设置或获取元素固有属性值 prop()
所谓元素固有属性就是元素本身自带的属性,比如 <a> 元素里面的 href ,比如 <input> 元素里面的 type。
1. 获取属性语法
2. 设置属性语法
4.2 设置或获取元素自定义属性值 attr()
用户自己给元素添加的属性,我们称为自定义属性。 比如给 div 添加 index =“1”。
1. 获取属性语法
2. 设置属性语法
改方法也可以获取 H5 自定义属性
4.3 数据缓存 data()
data() 方法可以在指定的元素上存取数据,并不会修改 DOM 元素结构。一旦页面刷新,之前存放的数据都将被移除。
1. 附加数据语法
2. 获取数据语法
同时,还可以读取 HTML5 自定义属性 data-index ,得到的是数字型
主要针对元素的内容还有表单的值操作。
主要是遍历、创建、添加、删除元素操作。
6.1 遍历元素
jQuery 隐式迭代是对同一类元素做了同样的操作。 如果想要给同一类元素做不同操作,就需要用到遍历。
语法1:
1. each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个
2. 里面的回调函数有2个参数: index 是每个元素的索引号; demEle 是每个DOM元素对象,不是jquery对象
3. 所以要想使用jquery方法,需要给这个dom元素转换为jquery对象 $(domEle)
语法2:
1. $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象
2. 里面的函数有2个参数: index 是每个元素的索引号; element 遍历内容
6.2 创建元素
语法:
动态的创建了一个 <li>
6.3 添加元素
1. 内部添加
把内容放入匹配元素内部最后面,类似原生 appendChild。
把内容放入匹配元素内部最前面。
2. 外部添加
内部添加元素,生成之后,它们是父子关系。
外部添加元素,生成之后,他们是兄弟关系。
6.4 删除元素
remove 删除元素本身。
empt() 和 html(\’\’\’\’) 作用等价,都可以删除元素里面的内容,只不过 html 还可以设置内容。
7.1 jQuery 尺寸
- 以上参数为空,则是获取相应值,返回的是数字型。
- 如果参数为数字,则是修改相应值。
- 参数可以不必写单位。
7.2 jQuery 位置
位置主要有三个: offset()、position()、scrollTop()/scrollLeft()
1. offset() 设置或获取元素偏移
- offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
- 该方法有2个属性 left、top 。offset().top 用于获取距离文档顶部的距离,offset().left 用于获取距离文档左侧的距离。
- 可以设置元素的偏移:offset({ top: 10, left: 30 });
2. position() 获取元素偏移
- position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。
- 该方法有2个属性 left、top。position().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定位父级左侧的距离。
- 该方法只能获取。
3. scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧
- scrollTop() 方法设置或返回被选元素被卷去的头部。
- 不跟参数是获取,参数为不带单位的数字则是设置被卷去的头部。
25个可遇不可求的jQuery插件
随着jQuery插件在网站建设过程中的使用率不断的增加,所以有必要跟进时代步伐开发出一些新的插件/代码片段,以此来巩固并提高前端用户体验,将用户体验提升到一个新的高度。
接下来所推荐的这些插件中有滑块、地图、图片旋转块等等,可以说是最好的、完全免费的jQuery插件。
1. Flat jQuery Price Slider
实例|下载
这个jQuery价格滑块可以在一定范围内选择需要的价钱,不管你是做开发项目的还是设计项目,它都会起很大的作用。记住,这个插件完全免费。
2. Gmaps jQuery Map Plugin
实例|下载
GMaps.js是一个JavaScript插件,通过它可以很容易地在你的应用程序中使用谷歌地图,并包含了多个选项,如地图、方向、信息框等等。它的脚本是由很少的代码和简洁文档构成的。因为安装操作很简单,所以要想让代码实现功能就得自己动手。
3. FormChimp—MailChimp Ajax plugin for jQuery实例|下载
FormChimp是jQuery里的一个可定义的MailChimp Ajax插件,为用户提供一个简便的注册方式,这样的话用户在你的MailChimp列表里注册就不是一件麻烦的事了。
4. OWL Carousel
实例|下载
此jQuery插件具有的触摸功能可以让用户创建出好看的响应式旋转滑块。
5. jQuery Spellchecker
实例|下载
这个轻量级的jQuery插件能检查文本文档里的单词拼写的正确性,主要是用在一个表单字段里或者是在DOM目录里。
6. Chart js
下载
Chart.js 是一个令人印象深刻的 JavaScript 图表库,建立在 HTML5 Canvas 基础上。目前,它支持6种图表类型:折线图、条形图、雷达图、饼图、柱状图和极地区域区。而且,这是一个独立的包,不依赖第三方JavaScript 库,小于 5KB。颜色,字体,边框和它们的尺寸都可以定制,图表可以动画的形式加载,非常炫。
7. Email-autocomplete
实例|下载
这个插件会建议你或者是直接在邮件地址栏里自动填写完域名。
8. Draggabilly
实例|下载
你可以用这个插件做一些可拖动的jQuery代码片段。
9. Interact.js
实例|下载
这是一个为电脑和移动设备上的浏览器而制作的可拖放、重置大小、调整手势的插件。
10. Sortable
实例|下载
它是一个极简单的JavaScript类库,主要是为现代浏览器和触摸设备而制定的。
11. rowGrid.js
实例|下载
大小只有800bytes gzipped的轻量级jQuery插件用处是把图片或其它项目排版在连续的行内。
12. Scattered Polaroid gallery
实例|下载
这个插件可以在容器里随机排版这些相片,当你选中了一个项目的时候它就会移动到屏幕中间,其它项目自动闪到旁边。
13. Viewport Image Resize
实例|下载
操作上比较简单,没有任何麻烦,重新设置图像大小和对图片进行修剪,这些都是基于pseudo视图而做的。
14. jQueryUI Limitslider
实例|下载
这一滑块插件允许在一条选择线上做出多个滑块,这些滑块可以用来代表位置、尺寸、举例等等,同时还可以在滑块上做标签或者是悬浮标题。
15. Freewall
实例|下载
Freewall是一个跨浏览器、响应式的jQuery插件,可以创建出多种多样适用在电脑、移动设备和平板电脑上的网格布局。
16. jQuery fontIconPicker
实例|下载
这个只有1.58kb gzipped大小的插件,可以让用户创建一个带有搜索功能的简单的图标选择器放在管理列表里。
17. Bootstrap-dialog
实例|下载
这个插件会让用户使用Bootstrap的模型更加熟练。
18. jquery.tabelizer
实例|下载
Tabelizer 1.0.3—用在表格上的多层次分组指标器。
19. Facebook Badge Jquery Plugin
实例|下载
FaceBadge可以在用户网站上添加了一个Facebook页面标记,用起来更省事。
20. Croppic
项目网页
这是一个用来裁剪图片的jQuery插件,效果超出你想象。
21. JQuery Plugin for Google Drive API
实例|下载
这个插件主要是为了让在不同设备上的Google Drive能够同步协作,传输文件等等,包括是Android设备。
22. Pick-a-Color
实例|下载
这项插件的设计之初就是希望所有人都能使用它,它的界面主要是基于Twitter Bootstrap的风格而设计,所以看起来比较亲切。
23. Simple Vertical Menu
下载代码
看上去很简单,但是很时髦的一个插件,使用了一些CSS3和jQuery技术,拥有自定义字体和令人影响深刻的标记图案。
24. jQuery Message Form
下载代码
这只是一个很小的字符计数器的实验版本。
25. Magnifying Glass Plugin with jQuery and CSS3项目主页
这是一个简单的小插件,基于TCP的排版设计。
原文来自:DesignScrazed
10个最有趣的jQuery Grid插件
6. jQuery Portfolio
如果你想设计一个时尚组合的网站jQuery Portfolio 插件是一个不错的选择。
你可以在网格中设置列的数目以及想要的jQuery过渡效果。 jQuery Portfolio插件在移动设备的响应效果也很好,所以不用担心在移动设备上的用户体验。
7. jQuery MatchHeight
jQuery MatchHeight插件允许你用一种特殊的jQuery网格使得所有选中元素的高度完全相等。 MatchHeight自动匹配在同一组中的元素高度,并灵活处理浮点元素和包装。你可以使用这个插件来漂亮的放置项目。
你可以使用一个最大高度作为基准,或定义一个特定的目标元素,然后MatchHeight将会确保其它元素不会比这更大。它有一个Data API使你可以使用HTML5文件里内联标记中的数据属性。
8. Photoset Grid
如果你喜欢tumblr的Photoset功能,那Photoset Grid jQuery插件就是专门为你设计的。这个方便的前端工具就是基于Photoset功能将图像转换成灵活的网格。这个插件的原始版本是用于创建Tumblr主题,后来开发团队决定给设计人员机会让他们在该插件中自己设计。
如果你想在你自己的Tumblr主题添加Photoset Grid,你可以在自定义代码段嵌入自己的代码。大概这个插件最酷的功能可能就是在图像网格中加入了Lightbox。你可以在这里点击其中一张图片感受一下。
9. Shuffle
你是否曾经想要一个灵活的图像网格,你可以进行分类、排序和筛选项目?如果是的话,你一定要试试Shuffle。这个插件做出来的网格非常漂亮,特别是因为它在页面加载时加了一个很酷的洗牌效果。
项目可以被添加到多个组,然后用户可以通过组来过滤它们,因此这是一个很好的用户体验。该插件给列出的项目所属类别图像增加了微妙的文字说明。你可以在JavaScript变量的帮助文档下设置很多选项,如洗牌效果的速度、装订线的宽度、列的宽度等。
10. jQuery Gridly
jQuery Gridly 是实现触摸设备上网格布局的不二选择。这个插件允许用户在屏幕上拖拽项目。无论是托还是拽,调整大小的功能都会根据触屏手势进行反应。
用户可以关闭他们不喜欢的图像,在图像关闭之后页面会通过很酷的效果重新排列布局。而且jQuery Gridly很容易在Rails 应用上与Ruby集成使用。
本站文章除注明转载外,均为本站原创或翻译
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。