提个关于原生JS滚动执行动画的问题
来源:
 
			谷白
2016-08-17
使用$(window).scroll去进行判断,当鼠标滚动到对应距离,执行动画,动画执行完毕
当鼠标再次滚动到同样的位置,如何让动画再次执行?
写回答
	4回答
- 
				  Lyn 2016-08-22 回复 谷白: 1.) 模块化写法(非面向对象,因为没有足够的信息去构建 「对象」)。 2.) 一些动画操作,这个是跟你的业务相关的。你的「滚动到200,画面依次从左往右」我猜不出来是什么东西。 记得调用 this.end() 是因为,你操作的动画肯定是延时的,结束之后给了个接口去调用。在动画的过程中,无法再次触发。 因为每次 scroll 事件都会触发。所以要有个标记,正在动画中的时候,不要触发。 022016-08-23
- 
				  Lyn 2016-08-17 第一行代码是没用的,我写多了,但是这个没法修改回复。 022016-08-22
- 
				  Lyn 2016-08-17 我尝试用伪代码来回答你的问题,不清楚的继续问我。 var isPlaying = false ; // 是否动画正在播放中,默认为否。 // 执行动画的操作、相关状态 封装在一个模块里面 var Animation = { isPlaying : false, start : function(){ if( this.isPlaying == true){ return false;} this.isPlaying = true; // ... 一些动画操作 // ... 动画操作完了,记得调用 this.end(); }, end : function(){ this.isPlaying = false; } } // 事件的侦听 $(window).on('scroll',function(){ if( this.scrollY > 100 && this.scrollY < 150 && Animation.isPlaying == false ){ // 假设 从上到下 滚动了 100 就执行 // 或者,一次执行完了,从下面滚动到 150 就执行 // 当然必须是动画已经执行完成之后才应该做这事 Animation.start(); } })00
- 
				  劫1 2016-08-17 if( $(window).height() + $(window).scrollTop() >= $(document).height() ){ } 屏幕高度加上当前scroll的top 如果大于等于文档的高度,执行做的事情 012016-08-17
相似问题
 
						