原生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 相关文章推荐
javascript下arguments,caller,callee,call,apply示例及理解
Dec 24 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 Javascript
对比分析json及XML
Nov 28 Javascript
noty ? jQuery通知插件全面解析
May 18 Javascript
JavaScript事件详细讲解
Jun 27 Javascript
使用vue编写一个点击数字计时小游戏
Aug 31 Javascript
基于JavaScript实现复选框的全选和取消全选
Feb 09 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
Sep 10 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
JS数组splice操作实例分析
Oct 12 Javascript
Electron实现应用打包、自动升级过程解析
Jul 07 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 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
jQuery获取json后使用zy_tmpl生成下拉菜单
2015/03/27 PHP
php关联数组快速排序的方法
2015/04/17 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
JavaScript 全角转半角部分
2009/10/28 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
eBay奥地利站:eBay.at
2019/07/24 全球购物
毕业生求职信的经典写法
2014/01/31 职场文书
减负增效提质方案
2014/05/23 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
读后感作文评语
2014/12/25 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
军训决心书范文
2015/09/22 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python