原生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 相关文章推荐
基于Jquery的动态添加控件并取值的实现代码
Sep 24 Javascript
javascript中有趣的反柯里化深入分析
Dec 05 Javascript
jQuery中dequeue()方法用法实例
Dec 29 Javascript
js获取元素的标签名实现方法
Oct 08 Javascript
JavaScript数组去重的6个方法
Jan 21 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
javascript 的变量、作用域和内存问题
Apr 19 Javascript
vue项目常用组件和框架结构介绍
Dec 24 Javascript
layui select动态添加option的实例
Mar 07 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
js实现查询商品案例
Jul 22 Javascript
小程序实现点击tab切换左右滑动
Nov 16 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作为Shell脚本语言使用
2006/10/09 PHP
php实现httpclient类示例
2014/04/08 PHP
CI配置多数据库访问的方法
2016/03/28 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
TBCompressor js代码压缩
2011/01/05 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
Python smallseg分词用法实例分析
2015/05/28 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Python restful框架接口开发实现
2020/04/13 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
python 基于DDT实现数据驱动测试
2021/02/18 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
校友会欢迎辞
2014/01/13 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
园艺师求职信
2014/04/27 职场文书
就职演讲稿范文
2014/05/19 职场文书
普通党员个人整改措施
2014/10/27 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL