zoukankan      html  css  js  c++  java
  • WEB网页 , webkit 内核手机,slider 上下滑动弹性切换效果(不采用任何插件)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <title>slider</title>
    <style>
    *{
        padding:0;
        margin:0;
    }
    html ,
    body ,
    #slider {
        height:100%;
        overflow: hidden;
    }
    .s-list{
        height:400%;
        -webkit-transition:.3s;
        -webkit-transform:translate3d(0px,0px,0px);
    }
    .s-list>li{
        height:25%;
    }
    .s-list>li:nth-child(1){background:#00be9c;}
    .s-list>li:nth-child(2){background:#50d78a;}
    .s-list>li:nth-child(3){background:#2c97df;}
    .s-list>li:nth-child(4){background:#9c56b8;}
    </style>
    </head>
    <body>
         
     
     
    <section id="slider">
        <ul class="s-list">
            <li>第一屏</li>
            <li>第二屏</li>
            <li>第三屏</li>
            <li>第四屏</li>
        </ul>
    </section>
     
     
     
    <script>
         
        function slider( id ){
            //获取所要的 DOM 元素
            var oSlider = document.getElementById('slider');
            var oUl = oSlider.getElementsByTagName('ul')[0];
            var aLi = oUl.getElementsByTagName('li');
            var winHeight = document.body.clientHeight;
            var startY , offsetY , num = 0 , addNum = 0 ;
     
     
            //开始
            var sliderStart = function( event ){
                this.startY = event.touches[0].pageY;
            }
     
     
            //移动
            var sliderMove = function( event ){
                //单手操作才执行
                if ( event.targetTouches.length == 1 ) {
                    event.preventDefault();                    
                    //获取移动的距离
                    this.offsetY = event.targetTouches[0].pageY - this.startY;
     
                    //当前的页数值与滑动距离数字累加,从而产生弹性效果
                    addNum += this.offsetY;
                     
                    //判断正数还是负数来进行弹性的方向
                    if ( this.offsetY > 0 ){
                        addNum = -num * winHeight + winHeight/4;
                    }else{
                        addNum = -num * winHeight - winHeight/4;
                    }
     
                    oUl.style['-webkit-transform'] = 'translate3d(0px,'+ addNum +'px,0px)';
                }
            }
     
     
            //结束
            var sliderEnd = function(){
     
                //负数为往上,正数为往下
                if ( this.offsetY > winHeight / 5 ) {
                    // console.log('向上');
                    if ( num > 0 ) {
                        num--;
                    }else{
                        nun = 0;
                    }
                }else if ( this.offsetY < -winHeight / 5 ) {
                    // console.log('向下');
                    if ( num < aLi.length - 1 ) {
                        num++;
                    }else{
                        num = aLi.length -1;
                    }
                }
     
                //真实的切换
                oUl.style['-webkit-transform'] = 'translate3d(0px,'+ -num*winHeight +'px,0px)';
     
                //让累加数值为当前页面切换到的数值
                addNum = -num*winHeight;
            }
     
     
            //让最顶层的 DIV 处理事件,然而 ul 根据,最顶层的 DIV 操作来移动
            oSlider.addEventListener('touchstart' , sliderStart);
            oSlider.addEventListener('touchmove' , sliderMove);
            oSlider.addEventListener('touchend' , sliderEnd);
        }
     
        slider('slider');
     
    </script>
    </body>
    </html>
    

      

  • 相关阅读:
    [Unity菜鸟] 协程Coroutine
    [Unity菜鸟] Unity发布web后,从HTML调用本地文件
    [Unity菜鸟] Unity鼠标双击,鼠标函数整理(未完)
    [Unity菜鸟] Unity Web Player 相关问题 (待完善)
    [Unity菜鸟] Unity读XML
    [Unity菜鸟] 术语
    [Unity菜鸟] 笔记2 —— 问题篇
    [Unity菜鸟] Mecanim 系统遇到的问题
    学习:条件[记录]断点
    学习:硬件断点
  • 原文地址:https://www.cnblogs.com/zion0707/p/4477580.html
Copyright © 2011-2022 走看看