移动端前端动画之,年度总结翻页淡入淡出,动画间隔执行

本文介绍了如何在移动端H5页面实现翻页淡入淡出效果,通过对比setTimeout和requestAnimationFrame在动画执行中的优劣,详细讲解了使用requestAnimationFrame实现流畅动画的方法,避免了卡顿和抖动的问题。
摘要由CSDN通过智能技术生成

一、具体场景

公司要求做一个H5的页面,可以翻页,做出每一页淡入淡出的效果 (安排)
因为页面内容不多,所以我采取的是一个大的div去装载多个div页面的方式
然后让这些装载页面的div绝对定位在最外面的大盒子中,通过控制每个页面
div的z-index来决定显示的页面

血泪分割点

一开始我并不是要用z-index这种方式的,而是一整个div从上而下排列下来,然后通过display来控制页面的显示,但是因为 transitiondisplay两个人好像水火不容,导致了许多bug,查阅各大资料====传送门====才了解到其中的奥秘!

二、手指翻页

代码直接上

$(".index").on("touchstart", (e) => {
   
            // e.preventDefault();
            this.startX = e.originalEvent.changedTouches[0].pageX,
                this.startY = e.originalEvent.changedTouches[0].pageY;
        });
$(".index").on("touchmove", (e) => {
   
            // e.preventDefault();
            console.log(e.originalEvent)
            console.log(e.originalEvent.changedTouches[0])
            this.moveEndX = e.originalEvent.changedTouches[0].pageX
            this.moveEndY = e.originalEvent.changedTouches[0].pageY
            let X = this.moveEndX - this.startX
            let Y = this.moveEndY - this.startY;

            if (Math.abs(X) > Math.abs(Y) && X > 0) {
   
                // alert("left 2 right");
            } else if (Math.abs(X) > Math.abs(Y) && X < 0) {
   
                // alert("right 2 left");
            } else if (Math.abs(Y) > Math.abs(X) && Y > 0) {
   

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值