zoukankan      html  css  js  c++  java
  • 原生实现移动端轮播图 带触摸

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=640,user-scalable=no" />
        <title>Document</title>
        <style>
            *{margin:0; padding:0;}
            #tabPic{
                position:relative;
                100%;
                height:357px;
                overflow:hidden;
            }
            #picList{
                500%;
                position:absolute;
            }
            #picList li{
                float:left;
                20%;
                list-style:none;
            }
            #picList li img{
                100%;
                height:357px;
            }
            .navList{
                position:absolute;
                right:30px;
                bottom:30px;
                100px;
                height:15px;
            }
            .navList a{
                10px;
                height:10px;
                border-radius:5px;
                background-color:white;
                float:left;
                margin-left:10px;
            }
            .active{
                background-color:red !important;
            }
        </style>
    </head>
    <body>
        <section id="tabPic">
            <ul id="picList">
                <li> <img src="images/1.jpg"> </li>
                <li> <img src="images/2.jpg"> </li>
                <li> <img src="images/3.jpg"> </li>
                <li> <img src="images/4.jpg"> </li>
                <li> <img src="images/5.jpg"> </li>
            </ul>
    
            <nav class="navList">
               <a class="active" href="javascript:;"></a>
               <a href="javascript:;"></a>
               <a href="javascript:;"></a>
               <a href="javascript:;"></a>
               <a href="javascript:;"></a>
            </nav>
        </section>
    
        <script>
        function fnTab(){
            var tabPic = document.getElementById('tabPic');
            var picList = document.getElementById('picList');
            var aPicList = picList.getElementsByTagName('li');
            var aNavList = document.getElementsByClassName('navList')[0].getElementsByTagName('a');
            
            var iNow = 0; //记录页
            var iX = 0;//记录的位置
            var iW = 640; //页面的宽度
            var timer = 0; //定时器
    
            var iStartTouchX = 0;
            var iStartX = 0;
    
            picList.addEventListener('touchstart',fnStart,false);
            picList.addEventListener('touchmove',fnMove,false);
            picList.addEventListener('touchend',fnEnd,false);
    
            autoPlay();
            function autoPlay(){
                timer = setInterval(function(){
                    iNow++;
                    iNow = iNow % aPicList.length;
                    tab();
                },1000);
            }
            function fnStart(ev){
                ev = ev.changedTouches[0]; 
                // console.log(ev);
                iStartTouchX = ev.pageX; //开始触摸点击的位置
                iStartX = iX; //图片滚动的现在位置
                clearInterval(timer);
            }
            function fnMove(ev){
                ev = ev.changedTouches[0];
                var iDis = ev.pageX - iStartTouchX; //移动的位置 - 开始触摸的位置
                console.log(iDis);
                iX = iStartX + iDis;
                picList.style.WebkitTransform = picList.style.transform = "translateX("+iX+"px)";
            }
            function fnEnd(){
                iNow=iX/iW;
            iNow=-Math.round(iNow);
            if(iNow<0)
            {
                iNow=0;
            }
            if(iNow>aNavList.length-1)
            {
                iNow=aNavList.length-1;
            }
            tab();
            autoPlay();
    
            }
    
    
            function tab(){
                iX= -iNow*iW;
                picList.style.WebkitTransition = picList.style.transition = '0.5s';
                picList.style.WebkitTransform = picList.style.transform = "translateX("+iX+"px)"
                for(var i = 0 ; i < aNavList.length; i++){
    
                    aNavList[i].className = "";
                }
                aNavList[iNow].className = "active";
            }
    
        
        }
        fnTab();
            
    
    
        </script>
    </body>
    </html>
  • 相关阅读:
    转 博客园 各种大牛合集
    系统学习qsort1 尤其partition
    转 大整数乘法 1 复杂度分析
    【转】如何设计一个LRU Cache?
    转微软大牛 13道链表操作
    框架设计之旅(1)--数据的分层
    框架设计之旅(2)--数据分层之实际应用
    DB2相关问题及解决方法:
    框架设计之旅--启航篇
    如何挑选水货诺基亚手机
  • 原文地址:https://www.cnblogs.com/mingjixiaohui/p/5593647.html
Copyright © 2011-2022 走看看