原生javascript移动端滑动banner效果


Posted in Javascript onMarch 10, 2017

本文实例为大家分享了移动端滑动banner效果的具体代码,供大家参考,具体内容如下

<!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>Document</title>
 <style>
  *{margin:0;padding:0;}
  .box{
   height:200px;
   width:100%;
   overflow: hidden;
  }
  .movebox{
   height:200px;
   width:9000px;
   padding:0;
   position:relative;
   left:0;
  }
  .movebox li{
   height:200px;
   float:left;
   list-style:none;
   font-size:30px;
   color:#fff;
  }

 </style>
 <script>
  window.onload = function(){

   var moveX,  //手指滑动距离
    endX,  //手指停止滑动时X轴坐标
    cout = 0, //滑动计数器
    moveDir; //滑动方向
   var movebox = document.querySelector(".movebox"); //滑动对象
   var Li = movebox.querySelectorAll("li"); //滑动对象item
   var width = parseInt(window.getComputedStyle(movebox.parentNode).width); //滑动对象item的宽度

   movebox.style.width = (width*4) + "px"; //设置滑动盒子width
   for(var i = 0; i < Li.length; i++){
    Li[i].style.width = width + "px"; //设置滑动item的width,适应屏幕宽度
   }

   //触摸开始
   function boxTouchStart(e){
    var touch = e.touches[0]; //获取触摸对象
    startX = touch.pageX; //获取触摸坐标
    endX = parseInt(movebox.style.webkitTransform.replace("translateX(", "")); //获取每次触摸时滑动对象X轴的偏移值
   }

   function boxTouchMove(e){
    var touch = e.touches[0];
    moveX = touch.pageX - startX; //手指水平方向移动的距离

    if(cout == 0 && moveX > 0){  //刚开始第一次向左滑动时
     return false;
    }

    if(cout == 3 && moveX < 0){  //滑动到最后继续向右滑动时
     return false;
    }

    movebox.style.webkitTransform = "translateX(" + (endX + moveX) + "px)"; //手指滑动时滑动对象随之滑动
   }

   function boxTouchEnd(e){
    moveDir = moveX < 0 ? true : false;  //滑动方向大于0表示向左滑动,小于0表示向右滑动
    //手指向左滑动
    if(moveDir){

     if(cout<3){
      movebox.style.webkitTransform = "translateX(" + (endX-width) + "px)";
      cout++;
     }
    //手指向右滑动
    }else{
     //滑动到初始状态时返回false
     if(cout == 0){
      return false;
     }else{
      movebox.style.webkitTransform = "translateX(" + (endX+width) + "px)";
      cout--;
     }
    }
   }

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

<body style="position:absolute;width:100%;overflow:hidden;">
 <div class="box">
  <ul class="movebox" style="transition-duration:0.2s;transform: translateX(-0px);">
   <li style="background:red;">1</li>
   <li style="background:yellow">2</li>
   <li style="background:blue">3</li>
   <li style="background:green">4</li>
  </ul>
 </div>
</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
bcastr2.0 通用的图片浏览器
Nov 22 Javascript
Prototype Template对象 学习
Jul 19 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
js 加密压缩出现bug解决方案
Nov 25 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
Sep 27 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 Javascript
javascript中Number的方法小结
Nov 21 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
如何通过JS实现转码与解码
Feb 21 Javascript
JavaScript JSON使用原理及注意事项
Jul 30 Javascript
JS异步堆栈追踪之为什么await胜过Promise
Apr 28 Javascript
jQuery弹出窗口简单实现代码
Mar 09 #Javascript
JavaScript实现弹窗效果代码分析
Mar 09 #Javascript
详解Vue方法与事件
Mar 09 #Javascript
Vue实现自带的过滤器实例
Mar 09 #Javascript
Vue中fragment.js使用方法详解
Mar 09 #Javascript
JavaScript编写一个贪吃蛇游戏
Mar 09 #Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 #Javascript
You might like
实用函数9
2007/11/08 PHP
php在apache环境下实现gzip配置方法
2015/04/02 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
Python isinstance函数介绍
2015/04/14 Python
python实现中文转换url编码的方法
2016/06/14 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
html5教程画矩形代码分享
2013/12/04 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
高校十八大报告感想
2014/01/27 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
关于车尾的标语大全
2015/08/11 职场文书
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL