原生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 new 需不需要继续使用
Jul 02 Javascript
ext checkboxgroup 回填数据解决
Aug 21 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
jQuery的事件委托实例分析
Jul 15 Javascript
js模仿java的Map集合详解
Jan 06 Javascript
jQuery点击其他地方时菜单消失的实现方法
Apr 22 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
May 25 Javascript
JavaScript中document.referrer的用法详解
Jul 04 Javascript
Vue 中使用 typescript的方法详解
Feb 17 Javascript
原生js实现瀑布流效果
Mar 09 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
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
PHP 验证码的实现代码
2011/07/17 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
Zend Studio 实用快捷键一览表(精心整理)
2013/08/10 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
Python判断有效的数独算法示例
2019/02/23 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
自我鉴定范文200字
2013/10/02 职场文书
党委书记岗位职责
2013/11/24 职场文书
社区活动邀请函范文
2014/01/29 职场文书
高一学生期末评语
2014/04/25 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
个人总结与自我评价
2015/02/14 职场文书
重温入党誓词主持词
2015/06/29 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
六年级语文教学反思
2016/03/03 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript