zoukankan      html  css  js  c++  java
  • 用jQuery.touchSwipe插件实现手机端场景滑动切换效果

      使用jQuery的touchSwipe插件监听触摸滑动事件,结合css3实现手机端场景滑动切换效果。最好在手机端测试代码,也可以在PC端用鼠标点击模拟滑动。

    1、html代码:

    <div class="container">
    
        <div class="page page0 page_current">
            <h1>你好,我是0号屏幕,第一屏,鼠标单击向下/向上拖动</h1>
        </div>
    
        <div class="page page1">
            <h1>你好,我是1号屏幕,鼠标单击向下/向上拖动</h1>
        </div>
    
        <div class="page page2">
            <h1>你好,我是2号屏幕,鼠标单击向下/向上拖动</h1>
        </div>
    
        <div class="page page3">
            <h1>你好,我是3号屏幕,鼠标单击向下/向上拖动</h1>
        </div>
    
        <div class="page page4">
            <h1>你好,我是4号屏幕,鼠标单击向下/向上拖动</h1>
        </div>
    
        <i class="fa fa-angle-double-up"></i>
    
    </div>

      注意:需引入jquery-1.11.1.min.js和jquery.touchSwipe.min.js文件

    2、css代码

    .container {
        position: relative;
         100%;
        height: 100%;
        -webkit-perspective: 1200px;
        -moz-perspective: 1200px;
        perspective: 1200px;  //透视容器的位置是相对的,增加1200像素透视它
        text-align: center;
    }
    
    .container .page {
        color: #fff;
        text-align: center;
        margin: 0;
        padding: 0;
         100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        visibility: hidden;
        overflow: hidden;
        -webkit-backface-visibility: hidden;
        -moz-backface-visibility: hidden;
        backface-visibility: hidden;
        -webkit-transform: translate3d(0, 0, 0);
        -moz-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        -webkit-transform-style: preserve-3d;
        -moz-transform-style: preserve-3d;
        transform-style: preserve-3d;
    }
    
    .page_current{
        visibility: visible!important;
        z-index: 1;
    }
    
    .container .page h1 {
        margin: 0;
        padding: 0;
    }
    .fa-angle-double-up{ position: fixed; bottom: 20px; left: 49%; color: #FFF; font-size: 22px; animation: blink_up 1.2s infinite; -moz-animation: blink_up 1.2s infinite; -webkit-animation: blink_up 1.2s infinite; -o-animation: blink_up 1.2s infinite; z-index: 2; } @keyframes blink_up { 0%, 30% { opacity: 0; transform: translate(0,10px); } 60% { opacity: 1; transform: translate(0,0); } 100% { opacity: 0; transform: translate(0,-8px); } } /*翻页效果*/
    .pt-page-moveToTop {
    -webkit-animation: moveToTop .6s ease both;
    -moz-animation: moveToTop .6s ease both;
    animation: moveToTop .6s ease both;
    z-index: 1!important;
    }

    .pt-page-moveFromTop {
    -webkit-animation: moveFromTop .6s ease both;
    -moz-animation: moveFromTop .6s ease both;
    animation: moveFromTop .6s ease both;
    z-index: 2!important;
    }

    .pt-page-moveToBottom {
    -webkit-animation: moveToBottom .6s ease both;
    -moz-animation: moveToBottom .6s ease both;
    animation: moveToBottom .6s ease both;
    z-index: 1!important;
    }

    .pt-page-moveFromBottom {
    -webkit-animation: moveFromBottom .6s ease both;
    -moz-animation: moveFromBottom .6s ease both;
    animation: moveFromBottom .6s ease both;
    z-index: 2!important;
    }

    @-webkit-keyframes moveFromTop {
    from {
    -webkit-transform: translateY(-100%);
    }
    }
    @-moz-keyframes moveFromTop {
    from {
    -moz-transform: translateY(-100%);
    }
    }
    @keyframes moveFromTop {
    from {
    transform: translateY(-100%);
    }
    }

    @-webkit-keyframes moveFromBottom {
    from {
    -webkit-transform: translateY(100%);
    }
    }
    @-moz-keyframes moveFromBottom {
    from {
    -moz-transform: translateY(100%);
    }
    }
    @keyframes moveFromBottom {
    from {
    transform: translateY(100%);
    }
    }


    @-webkit-keyframes moveToTop {
    to {
    -webkit-transform: translateY(-20%) scale(0.8);
    }
    }
    @-moz-keyframes moveToTop {
    to {
    -moz-transform: translateY(-20%) scale(0.8);
    }
    }
    @keyframes moveToTop {
    to {
    transform: translateY(-20%) scale(0.8);
    }
    }

    @-webkit-keyframes moveToBottom {
    to {
    -webkit-transform: translateY(20%) scale(0.8);
    }
    }
    @-moz-keyframes moveToBottom {
    to {
    -moz-transform: translateY(20%) scale(0.8);
    }
    }
    @keyframes moveToBottom {
    to {
    transform: translateY(20%) scale(0.8);
    }
    }
    /*翻页效果*/

      注意:手机端css代码兼容问题:需在css样式前添加前缀以兼容不同浏览器

      示例代码:

    .fa-angle-double-up{
        position: fixed;
        bottom: 20px;
        left: 49%;
        color: #FFF;
        font-size: 22px;
        animation: blink_up 1.2s infinite;
        -moz-animation: blink_up 1.2s infinite;
        -webkit-animation: blink_up 1.2s infinite;
        -o-animation: blink_up 1.2s infinite;
        z-index: 2;
    }
    
    @keyframes blink_up {
        0%, 30% {
            opacity: 0;
            transform: translate(0,10px);
        }
    
        60% {
            opacity: 1;
            transform: translate(0,0);
        }
        100% {
            opacity: 0;
            transform: translate(0,-8px);
        }
    }
    
    
    @-moz-keyframes blink_up {
        0%, 30% {
            -moz-opacity: 0;
            -moz-transform: translate(0,10px);
        }
    
        60% {
            -moz-opacity: 1;
            -moz-transform: translate(0,0);
        }
        100% {
            -moz-opacity: 0;
            -moz-transform: translate(0,-8px);
        }
    }
    
    @-webkit-keyframes blink_up {
        0%, 30% {
            -webkit-opacity: 0;
            -webkit-transform: translate(0,10px);
        }
    
        60% {
            -webkit-opacity: 1;
            -webkit-transform: translate(0,0);
        }
        100% {
            -webkit-opacity: 0;
            -webkit-transform: translate(0,-8px);
        }
    }
    
    @-o-keyframes blink_up {
        0%, 30% {
            -o-opacity: 0;
            -o-transform: translate(0,10px);
        }
    
        60% {
            -o-opacity: 1;
            -o-transform: translate(0,0);
        }
        100% {
            -o-opacity: 0;
            -o-transform: translate(0,-8px);
        }
    }
    

      

    3、js代码

    $(document).ready(function() {
        var nowpage = 0;
    
        //给最大的盒子增加事件监听
        $(".container").swipe({
            swipe:function(event, direction, distance, duration, fingerCount) {
                if (direction == "up") {        //向上滑动页面
                    nowpage = nowpage + 1;
                    $(".page").eq((nowpage-1)%5).addClass("pt-page-moveToTop");         //当前显示页面向上滑动移出视窗
                    $(".page").eq((nowpage%5)).addClass("page_current pt-page-moveFromBottom");     //下个页面显示并向上滑动至视窗
                    $(".container").swipe('disable');       //页面处于滑动动画时禁止swipe插件
                    setTimeout(function(){
                        $(".page").eq((nowpage-1)%5).removeClass("page_current pt-page-moveToTop");      //移除滑动动画效果
                        $(".page").eq((nowpage%5)).removeClass("pt-page-moveFromBottom");           //移除滑动动画效果
                        $(".container").swipe('enable');     //页面滑动动画结束时重新启用swipe插件
                    },600);
                } else if (direction == "down") {      //向下滑动页面
                    if(nowpage==0){            //当前页面为第一个页面时
                        nowpage = nowpage +4;
                        console.log("a");
                    }else{
                        nowpage = nowpage -1;
                    }
                    $(".page").eq((nowpage+1)%5).addClass("pt-page-moveToBottom");      //当前显示页面向下滑动移出视窗
                    $(".page").eq((nowpage%5)).addClass("page_current pt-page-moveFromTop");     //下个页面显示并向下滑动至视窗
                    $(".container").swipe('disable');
                    console.log(nowpage%5);
                    console.log((nowpage+1)%5);
                    console.log(nowpage);
                    setTimeout(function(){
                        $(".page").eq((nowpage+1)%5).removeClass("page_current pt-page-moveToBottom");
                        $(".page").eq((nowpage%5)).removeClass("pt-page-moveFromTop");
                        $(".container").swipe('enable');
                    },600);
                }
            }
    
        });
    });
    

      通过使用jquery的touchSwipe插件给class名称为container的div元素添加滑动事件监听,并根据滑动事件的方向切换场景。

  • 相关阅读:
    阿里云nginx创建多站点
    linux 卸载php mysql apache
    centos php环境搭建
    jquery simple modal
    nodejs 安装express
    nodejs fs.open
    nodejs supervisor
    nodejs 运行
    nodejs shell
    PHP array_pad()
  • 原文地址:https://www.cnblogs.com/sakura0203/p/6230161.html
Copyright © 2011-2022 走看看