H5手机端滑动切换效果

最近在研究H5的动画,于是简单实现了相应的手机端触摸切换画面效果,具体代码如下:

最终效果:
这里写图片描述

实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta content="telephone=yes" name="format-detection" />
    <meta name="apple-mobile-web-app-status-bar-style" content="white">
    <meta name="x5-fullscreen" content="true">
    <meta name="apple-touch-fullscreen" content="yes">
    <title>H5手机端滑动切换效果</title>
    <style>
        * {margin: 0;padding: 0;}
        #box{position:absolute;width:100%;height:100%;}
        #box>div{position: absolute;height:100%;width:100%;background:#ccc;font-size:40px;color:#fff;line-height:100%;text-align: center;}
        #box .content{transform:scale(0.5);opacity:0;transition:all 1s;}
        #box .active{transform:scale(1);opacity:1;transition:all 1s;}
    </style>
</head>
<body>
    <div class="box" id="box">
        <div class="content" style="background:green;">1</div>
        <div class="content" style="background:red;">2</div>
        <div class="content" style="background:blue;">3</div>
        <div class="content active" style="background:yellow;">4</div>
    </div>
</body>
</html>
<script src="../Util/jquery-1.11.3.min.js"></script>
<script>
    (function(select){
        //小左边滑动
        var startX, moveX, movebox = document.querySelector(select);
        //触摸开始
        function boxTouchStart(e) {
            var touch = e.touches[0]; //获取触摸对象
            startX = touch.pageX; //获取触摸坐标
        }
        //触摸移动
        function boxTouchMove(e) {
            var touch = e.touches[0];
            moveX = touch.pageX - startX; //手指水平方向移动的距离
        }
        //触摸结束
        function boxTouchEnd(e) {
            moveDir = moveX < 0 ? true : false; //滑动方向大于0表示向左滑动,小于0表示向右滑动
            //手指向左滑动
            if (moveDir) {
                var index = $(this).find("div.active").index();
                //第一个是1的时候
                if(index == 0){
                    $(this).find("div.active").removeClass("active");
                    $(this).children(":last").addClass("active");
                }else{
                    var last = $(this).find("div.active");
                    last.removeClass("active").prev().addClass("active");
                }

            //手指向右滑动
            } else {
                var index = $(this).find("div.active").index();
                //第一个是4的时候
                if(index == 3){
                    $(this).find("div.active").removeClass("active");
                    $(this).children(":first").addClass("active");
                }else{
                    var last = $(this).find("div.active");
                    var _this = $(this);
                    last.removeClass("active").next().addClass("active");

                }
            }
        }

        //滑动对象事件绑定
        movebox.addEventListener("touchstart", boxTouchStart, false);
        movebox.addEventListener("touchmove", boxTouchMove, false);
        movebox.addEventListener("touchend", boxTouchEnd, false);

    })("#box")

</script>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值