采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
使用$(window).scroll去进行判断,当鼠标滚动到对应距离,执行动画,动画执行完毕
当鼠标再次滚动到同样的位置,如何让动画再次执行?
回复 谷白:
1.) 模块化写法(非面向对象,因为没有足够的信息去构建 「对象」)。
2.) 一些动画操作,这个是跟你的业务相关的。你的「滚动到200,画面依次从左往右」我猜不出来是什么东西。
记得调用 this.end() 是因为,你操作的动画肯定是延时的,结束之后给了个接口去调用。在动画的过程中,无法再次触发。
因为每次 scroll 事件都会触发。所以要有个标记,正在动画中的时候,不要触发。
有没有纯面向过程的写法?
if( $(window).height() + $(window).scrollTop() >= $(document).height() ){ } 我觉得这种写法,目前更能理解一点,
第一行代码是没用的,我写多了,但是这个没法修改回复。
1:这种写法属于什么写法? 2: // ... 一些动画操作 // ... 动画操作完了,记得调用 this.end(); 能写个实列吗?滚动到200,画面依次从左往右,
1.) 模块化写法(非面向对象,因为没有足够的信息去构建 「对象」)。 2.) 一些动画操作,这个是跟你的业务相关的。你的「滚动到200,画面依次从左往右」我猜不出来是什么东西。 记得调用 this.end() 是因为,你操作的动画肯定是延时的,结束之后给了个接口去调用。在动画的过程中,无法再次触发。 因为每次 scroll 事件都会触发。所以要有个标记,正在动画中的时候,不要触发。
我尝试用伪代码来回答你的问题,不清楚的继续问我。
var
isPlaying =
false
;
// 是否动画正在播放中,默认为否。
// 执行动画的操作、相关状态 封装在一个模块里面
Animation = {
isPlaying :
,
start :
function
(){
if
(
this
.isPlaying ==
true
){
return
;}
.isPlaying =
// ... 一些动画操作
// ... 动画操作完了,记得调用 this.end();
},
end :
}
// 事件的侦听
$(window).on(
'scroll'
.scrollY > 100 &&
.scrollY < 150 && Animation.isPlaying ==
// 假设 从上到下 滚动了 100 就执行
// 或者,一次执行完了,从下面滚动到 150 就执行
// 当然必须是动画已经执行完成之后才应该做这事
Animation.start();
})
if( $(window).height() + $(window).scrollTop() >= $(document).height() ){
屏幕高度加上当前scroll的top 如果大于等于文档的高度,执行做的事情
大概就这个思路
登录后可查看更多问答,登录/注册
用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告
1.2k 9
1.4k 6
1.0k 6
2.0k 5
972 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号