
jQuery 事件及动画
发布日期:2021-05-07 07:13:07
浏览次数:11
分类:原创文章
本文共 4390 字,大约阅读时间需要 14 分钟。
文章目录
jQuery 事件
- jquery中的事件是将事件名作为方法名,传入回调函数即可。
$("div").click(function(){ });$("div").mouseover(function(){ });
加载事件
- 在原生js中的页面加载事件是window.onload
推荐使用jquery的页面加载事件,jquery的页面加载要比js原生的写法效率高,因为js元素的页面加载事件需要等到页面中的所有资源加载完毕才执行,而jquery的页面加载事件只需要等到页面的标签加载完毕就执行,而不会等待外部文件加载。
- 在jquery中有两种写法:
$(function(){ });$(document).ready(function(){ });
元素事件
on方法
- 用于绑定事件、委托事件、传入参数
- 语法:
$(元素).on(事件类型,[委托的子元素],[传入的参数],处理的函数);
// 给 button 按钮绑定一个点击事件$('button').on('click', function () { console.log('我被点击了')})// 给 button 按钮绑定一个点击事件,并且携带参数$('button').on('click', { name: 'Jack' }, function (e) { console.log(e) // 所有的内容都再事件对象里面 console.log(e.data) // { name: 'Jack' }})// 事件委托的方式给 button 绑定点击事件$('div').on('click', 'button', function () { console.log(this) // button 按钮})// 事件委托的方式给 button 绑定点击事件并携带参数$('div').on('click', 'button', { name: 'Jack' }, function (e) { console.log(this) // button 按钮 console.log(e.data)})
off方法
- 用于解绑事件
- 语法:
$(元素).off(事件类型,处理函数)
// 给 button 按钮绑定一个 点击事件,执行 handler 函数$('button').on('click', handler)// 移除事件使用 off$('button').off('click', handler)
trigger方法
- 用于手动触发事件:
- 语法:
$(元素).trigger(事件类型,处理函数)
// 当代码执行到这里的时候,会自动触发一下 button 的 click 事件$('button').trigger('click')
one方法
- 只能触发一次的事件:
- 语法:
$(元素).one(事件类型,处理函数);
// 这个事件绑定再 button 按钮身上// 当执行过一次以后就不会再执行了$('button').one('click', handler)
常用事件
click事件
- 鼠标点击所触发的事件
- 语法:
$("元素").click(处理函数)
// 直接给 div 绑定一个点击事件$('div').click(function () { console.log('我被点击了')})// 给 div 绑定一个点击事件并传递参数$('div').click({ name: 'Jack' }, function (e) { console.log(e.data)})
dbclick事件
- 鼠标双击所触发的事件
- 语法:
$("元素").dbclick(处理函数)
// 直接给 div 绑定一个双击事件$('div').dblclick(function () { console.log('我被点击了')})// 给 div 绑定一个双击事件并传递参数$('div').dblclick({ name: 'Jack' }, function (e) { console.log(e.data)})
scroll事件
- 页面滚动所触发的事件
- 语法:
$("元素").scroll(处理函数)
// 直接给 div 绑定一个滚动事件$('div').scroll(function () { console.log('我被点击了')})// 给 div 绑定一个滚动事件并传递参数$('div').scroll({ name: 'Jack' }, function (e) { console.log(e.data)})
hover事件
- 鼠标放上去和鼠标离开所触发的事件
- 语法:
$("元素").hover(鼠标放上去的处理函数,鼠标离开的处理函数)
// 这个事件要包含两个事件处理函数// 一个是移入的时候,一个是移出的时候触发$('div').hover(function () { console.log('我会再移入的时候触发')}, function () { console.log('我会在移出的时候触发')})
jQuery 动画
基本动画
1. 显示(show)
- 语法:
元素.show();
- 让元素从隐藏状态变为显示状态(从display:none;变为 display:block;)
- 可选参数1:时间,毫秒数 == 让元素在规定的时间内显示(操作的属性有很多)
- 可选参数2:速度方式,匀速或加速或减速
- 可选参数3:动画结束后执行的回调函数
// 给 div 绑定一个显示的动画$('div').show() // 如果元素本身是 display none 的状态可以显示出来// 给 div 绑定一个显示的动画// 接受三个参数// $('div').show('毫秒', '速度', '回调函数') $('div').show(1000, 'linear', function () { console.log('我显示完毕')})
2. 隐藏(hide)
- 语法:
元素.hide();
- 让元素从显示状态切换到隐藏状态
- 可选参数和show一样
// 给 div 绑定一个隐藏的动画$('div').hide() // 如果元素本身是 display block 的状态可以隐藏起来// 给 div 绑定一个显示的动画// 接受三个参数// $('div').show('毫秒', '速度', '回调函数') $('div').hide(1000, 'linear', function () { console.log('我隐藏完毕')})
3. 切换显示隐藏(toggle)
- 语法:
元素.toggle();
- 让元素在隐藏和显示状态切换
- 可选参数和show一样
// 给 div 绑定一个切换的动画$('div').hide() // 元素本身是显示,那么就隐藏,本身是隐藏那么就显示// 给 div 绑定一个显示的动画// 接受三个参数// $('div').show('毫秒', '速度', '回调函数') $('div').toggle(1000, 'linear', function () { console.log('动画执行完毕')})
4. 元素上下拉到隐藏显示
- 语法:
元素.slideDown() // 让元素向下拉动显示元素.slideUp() // 让元素向上拉动隐藏元素.slideToggle() // 让元素切换上下拉动显示隐藏参数和show一样
5. 元素透明度显示隐藏
- 语法:
元素.fadeIn() // 让元素从透明度0变为1的显示元素.fadeOut() // 让元素从透明度1变为0的隐藏元素.slideToggle() // 让元素切换透明度显示隐藏参数和show一样
6. 让元素切换到指定的透明度
- 语法:
元素.fadeTo(毫秒数,透明度,速度方式,结束的回调函数) // 让元素在指定的时间内切换到指定的透明度
自定义动画
开启动画
元素.animate({ css属性名:属性值, css属性名:属性值, 。。。}[,毫秒数][,速度方式][,执行结束的回调函数]);
// 定义一个自定义动画$('.show').click(function () { $('div').animate({ width: 500, height: 300 }, 1000, 'linear', function () { console.log('动画运动完毕') })})
停止动画
元素.stop(); // 将动画停止在当前状态元素.finish(); // 将动画停止在结束状态
// 立刻定制动画$('div').stop() // 就停止再当前状态// 立刻结束动画$('div').finish() // 停止在动画结束状态
动画的链式操作
通常在一个动画中的所有css属性是同时进行的,想要将所有动画按顺序执行的话,可以将多个动画嵌套在动画结束的回调函数中,但是这样容易造成回调地狱,所以jquery提供了一个动画的链式操作,让所有动画组成一个队列,按顺序执行,例:
<style>div{ width: 100px; height:100px; background-color: red; position:absolute;}</style><body> <button class="start">按钮</button> <div></div></body><script src="./js/jquery.js"></script><script type="text/javascript">$(".start").click(function(){ $("div").animate({ left:"300px" }).animate({ top:"300px" }).animate({ width:"300px" }).animate({ height:"50px" })});</script>
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月18日 15时11分31秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue 官方实例教程 markdown demo
2019-03-04
CSS border-style 属性
2019-03-04
Win10选中图标后会出现蓝色框怎么取消
2019-03-04
Python数据类型 列表、元组、集合、字典的区别和相互转换
2019-03-04
宝塔配置404 502页面
2019-03-04
jquery each 操作批量数据
2019-03-04
Mac OS X 下 su 命令提示 sorry 的解决方法
2019-03-04
vue-router 缓存路由组件对象
2019-03-04
路径url
2019-03-04
移动端 触摸事件和mousedown、mouseup、click事件之间的关系
2019-03-04
js中事件捕获和事件冒泡(事件流)
2019-03-04
js的各种数据类型判断(in、hasOwnProperty)
2019-03-04
Vuex(三)--Vue核心概念Getter
2019-03-04
严格模式、混杂模式与怪异模式
2019-03-04
JavaScript 匿名函数自调(立即执行函数)
2019-03-04
一篇文章带你搞定 Java 中字符流的基本操作(Write / Read)
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
(Java)让枚举实现一个接口
2019-03-04
XML 解析学习
2019-03-04
验证码的简单实现
2019-03-04