jQuery -- touch事件之左右切换元素

28 篇文章 0 订阅
12 篇文章 0 订阅

效果预览:
这里写图片描述
全部代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            body{

            }
            .content{
                position: relative;
                width: 100%;
                height: 17.64rem;
                background-color: #00FFFF;
                overflow: hidden;
            }
            .net{
                -webkit-transition-timing-function: ease-out;
                -moz-transition-timing-function: ease-out;
                -ms-transition-timing-function: ease-out;
                -o-transition-timing-function: ease-out;
                transition-timing-function: ease-out;
                -webkit-transform: translate3d(0,0,0);
                -moz-transform: translate3d(0,0,0);
                -o-transform: translate(0,0);
                -ms-transform: translate3d(0,0,0);
                transform: translate3d(0,0,0);
                -webkit-transform: translate3d(0,0,0);
                -moz-transform: translate3d(0,0,0);
                -o-transform: translate(0,0);
                -ms-transform: translate3d(0,0,0);
                transform: translate3d(0,0,0);
                -webkit-transition-property: -webkit-transform;
                -moz-transition-property: -moz-transform;
                -o-transition-property: -o-transform;
                -ms-transition-property: -ms-transform;
                transition-property: transform;  
                transition: all .5s;
                -moz-transition: all .5s;   /* Firefox 4 */
                -webkit-transition: all .5s;    /* Safari 和 Chrome */
                -o-transition: all .5s; /* Opera */
                position: relative;
                right: 0;
                display: -webkit-box; /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
                display: -moz-box; /* Firefox 17- */
                display: -webkit-flex; /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
                display: -moz-flex; /* Firefox 18+ */
                display: -ms-flexbox; /* IE 10 */
                display: flex; /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */            
            }
            .net div{
                width: 100%;
                height: 4.7rem;
                -webkit-flex-shrink: 0;
                -ms-flex: 0 0 auto;
                flex-shrink: 0;
                text-align: center;
                line-height: 4.7rem;
                font-size: 0.94rem;             
            }
            .net div:nth-child(odd){
                background-color: red;
            }
            .net div:nth-child(even){
                background-color: cadetblue;
            }
        </style>
    </head>
    <body>
        <div class="content">
            <div class="net">
                <div>1</div>
                <div>2</div>
                <div>3</div>
                <div>4</div>
            </div>
        </div>
        <script type="text/javascript">
            var w = parseInt($('.net div').width());
            var c_w = parseInt(($('.net div').length*w)-w);
            var left = parseInt($('.net').position().left);
            $("body").on("touchstart", function(e) {
                // 判断默认行为是否可以被禁用
                if (e.cancelable) {
                    // 判断默认行为是否已经被禁用
                    if (!e.defaultPrevented) {
                        e.preventDefault();
                    }
                }   
                startX = e.originalEvent.changedTouches[0].pageX,
                startY = e.originalEvent.changedTouches[0].pageY;
            });
            $("body").on("touchend", function(e) {         
                // 判断默认行为是否可以被禁用
                if (e.cancelable) {
                    // 判断默认行为是否已经被禁用
                    if (!e.defaultPrevented) {
                        e.preventDefault();
                    }
                }               
                moveEndX = e.originalEvent.changedTouches[0].pageX,
                moveEndY = e.originalEvent.changedTouches[0].pageY,
                X = moveEndX - startX,
                Y = moveEndY - startY;
                //左滑
                if ( X > 0 ) {
                    if(left == 0){
                        return;
                    }else{
                        left -= w;
                        $('.net').css("right",left + 'px');    
                    }               
                }
                //右滑
                else if ( X < 0 ) {
                    if(left == c_w){
                        return;
                    }else{
                        left += w;
                        $('.net').css("right",left + 'px');
                    }
                }
                //下滑
                else if ( Y > 0) {
                    alert("top 2 bottom");
                }
                //上滑
                else if ( Y < 0 ) {
                    alert("bottom 2 top");
                }
                //单击
                else{
                    console.log("just touch");
                }
            }); 
        </script>
    </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值