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 相关文章推荐
jquery制作弹窗提示窗口代码分享
Mar 02 Javascript
JavaScript动态添加style节点的方法
Jun 09 Javascript
javascript实现tab响应式切换特效
Jan 29 Javascript
jQuery获取选中单选按钮radio的值
Dec 27 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
vue组件生命周期详解
Nov 07 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
laypage+SpringMVC实现后端分页
Jul 27 Javascript
JS前端广告拦截实现原理解析
Feb 17 Javascript
JS出现404错误原理及解决方案
Jul 01 Javascript
javascript实现前端分页功能
Nov 26 Javascript
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
PHP利用str_replace防注入的方法
2013/11/10 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
php实现无限级分类
2014/12/24 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
js 操作css实现代码
2009/06/11 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
pandas 时间格式转换的实现
2019/07/06 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
软件测试题目
2013/02/27 面试题
土建专业大学生自荐信范文
2014/04/09 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
员工离职感谢信
2015/01/22 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android