触屏tab选项卡
2015-09-20 11:11
661 查看
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"/> <meta name="renderer" content="webkit"><!-- 让国内浏览器采用IE高速模式--> <title>触屏tab选项卡</title> <link rel="stylesheet" href="css/index.css"> </head> <body> <div class="tab_wrap"> <div class="tab"> <ul> <li>标题1</li> <li>标题2</li> <li>标题3</li> <li>标题4</li> <div class="clear"></div> </ul> </div> <div class="tabbox"> <ul> <li>内容1</li> <li>内容2</li> <li>内容3</li> <li>内容4</li> <div class="clear"></div> </ul> </div> </div> <p class="txt"></p> <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> <script type="text/javascript"> $(function(){ var li_w = $(window).width()-20; var box_li = $(".tabbox").find("li"); var tabbox = $(".tabbox"); var ul_w = box_li.length*li_w; box_li.width(li_w); tabbox.find("ul").width(ul_w); $(".tab").find("li").eq(0).addClass("check"); $(".tab").find("li").click(function(){ var index = $(this).index(); var newLeft = index*box_li.width(); $(".tabbox").find("ul").css({ "-webkit-transform":"translateX("+-newLeft+"px"+")", //CSS3 新属性transform "-moz-transform":"translateX("+-newLeft+"px"+")", "-ms-transform":"translateX("+-newLeft+"px"+")", "-o-transform":"translateX("+-newLeft+"px"+")", "transform":"translateX("+-newLeft+"px"+")" }); $(".tab").find("li").eq(index).addClass("check").siblings().removeClass("check"); }); var startX,endX; //创建初始变量 tabbox.find("li").bind("touchstart",function(){ //绑定touchstart事件 var $this = $(this); var index = $this.index(); var ul_left = parseInt(tabbox.find("ul").position().left); var touchs = event.touches[0]; startX = touchs.pageX; //手指起始位置 $this.bind("touchmove",function(){ //绑定touchmove事件 event.preventDefault(); var touchs = event.touches[0]; endX = touchs.pageX - startX; //手指位置-起止位置=滑动距离 if(index!=0){ //如果不是第一个 if(endX > 0){ //向右滑动 $(".tab").find("li").eq(index-1).addClass("check").siblings().removeClass("check"); var newLeft = (index-1)*parseInt($(".tabbox").width()); $(".tabbox").find("ul").css({ "-webkit-transform":"translateX("+-newLeft+"px"+")", "-moz-transform":"translateX("+-newLeft+"px"+")", "-ms-transform":"translateX("+-newLeft+"px"+")", "-o-transform":"translateX("+-newLeft+"px"+")", "transform":"translateX("+-newLeft+"px"+")" }); } } if((index+1) != tabbox.find("li").length){ //如果不是最后一个 if(endX < 0){ //向左 $(".tab").find("li").eq(index+1).addClass("check").siblings().removeClass("check"); var newLeft = (index+1)*parseInt($(".tabbox").width()); $(".tabbox").find("ul").css({ "-webkit-transform":"translateX("+-newLeft+"px"+")", "-moz-transform":"translateX("+-newLeft+"px"+")", "-ms-transform":"translateX("+-newLeft+"px"+")", "-o-transform":"translateX("+-newLeft+"px"+")", "transform":"translateX("+-newLeft+"px"+")" }); } } }) }); tabbox.find("li").bind('touchend', function () { tabbox.find("li").off('touchmove touchend'); }); }) </script> </body> </html>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 在Windows 8.1的IE 11中屏蔽双击放大功能
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- IE8开发人员工具教程(二)
- 通过Mootools 1.2来操纵HTML DOM元素
- WEB标准网页布局中尽量不要使用的HTML标签
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法