jQuery中animate动画第二次点击事件没反应


Posted in Javascript onMay 07, 2015

用animate做点击翻页动画时发现第二次点击事件动画没反应,而第一次点击有动画效果,代码如下:

$(".page").stop().animate({top:“-300px”}, 800, 'easeInOutExpo');

第二次点击事件动画没反应的原因:top是page元素顶部相与其父元素顶部的距离,第一次点击后,page元素顶部已经移动到距其父元素顶部-300px的位置,第二次点击时的并不是page在移动后的位置继续t移动-300px,而是当前的位置据其父元素顶部-300px。显然第一次已经移动到top:-300px的位置,第二次的top:-300px移动距离为0,所以没反应。
解决方法:

$(".page").stop().animate({top:“-=300px”}, 800, 'easeInOutExpo');

top:“-=300px”,这样第二次点击时会在第一次点击后的位置上继续移动-300px。

如果动画移动的距离是变量,就不能用“-=变量名”来写了:

function down() {
var page_h=$(".page").height(); //687
var page_top=parseInt($(".page").css("top")); //0
var move=wrap_top+page_h;
$(".page").stop().animate({top:move}, 800, 'easeInOutExpo');
};

var page_h=$(".page").height();获取page的高度并赋值给page_h,得到的值是数值;
var page_top=parseInt($(".page").css("top"));获取当前page顶部到其父元素顶部的距离并赋值给page_top,(parseInt:去掉"PX");
var move=wrap_top+page_h;计算移动距离;

这样每次动画都会重新获取“当前page顶部到其父元素顶部的距离”。

注意:$(".page").height()的值是不带px单位的,$(".page").css("top"))的值是带px单位的,需要parseInt将单位px像素单位删除才能计算。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
关于图片验证码设计的思考
Jan 29 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
Jul 30 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
Dec 16 Javascript
微信小程序实现签到弹窗动画
Sep 21 Javascript
让你30分钟快速掌握vue3教程
Oct 26 Javascript
写一个Vue loading 插件
Nov 09 Javascript
js实现鼠标滑过文字链接色彩变化的效果
May 06 #Javascript
JS实现文字掉落效果的方法
May 06 #Javascript
DOM 高级编程
May 06 #Javascript
js获得当前系统日期时间的方法
May 06 #Javascript
js字符串操作方法实例分析
May 06 #Javascript
ajax+jQuery实现级联显示地址的方法
May 06 #Javascript
javascript十六进制及二进制转化的方法
May 06 #Javascript
You might like
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php长字符串定义方法
2012/07/12 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
php数组查找函数总结
2014/11/18 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
简单JS代码压缩器
2006/10/12 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
2015/03/10 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
js操作二进制数据方法
2018/03/03 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Django中几种重定向方法
2015/04/28 Python
Python+django实现文件下载
2016/01/17 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Python进度条的制作代码实例
2019/08/31 Python
Python线程threading模块用法详解
2020/02/26 Python
卫校毕业生自我鉴定
2013/10/31 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle