原生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 相关文章推荐
JS提交并解析后台返回的XML的代码
Nov 03 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
Mar 03 Javascript
jquery自定义属性(类型/属性值)
May 21 Javascript
JavaScript常用判断写法大全(推荐)
May 30 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
Aug 11 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
Oct 25 Javascript
javascript中递归的两种写法
Jan 17 Javascript
利用ES6语法重构React组件详解
Mar 02 Javascript
Vue实现移动端左右滑动效果的方法
Nov 27 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 Javascript
vue+echarts实现动态折线图的方法与注意
Sep 01 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
PHP 实例化类的一点摘记
2008/03/23 PHP
PHPEXCEL 使用小记
2013/01/06 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
各种快递查询--Api接口
2016/04/26 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
php正则表达式使用方法整理集合
2020/01/31 PHP
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
炫酷的js手风琴效果
2016/10/13 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
跟老齐学Python之再深点,更懂list
2014/09/20 Python
python实现的简单抽奖系统实例
2015/05/22 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
Python生成一个迭代器的实操方法
2019/06/18 Python
PHP统计代码行数的小代码
2019/09/19 Python
pytorch梯度剪裁方式
2020/02/04 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
主题团日活动总结
2014/06/25 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
2015大学迎新标语
2015/07/16 职场文书
2015年政教主任工作总结
2015/07/23 职场文书