移动端 触屏轮播图(完善版)

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=320,user-scalable=no" />

<title>ios 轮播图简版</title>
<style>
*{ margin:0; padding:0;}
ul,li{margin:0; padding:0;list-style:none;}

#outer{ width:800px; height:440px; margin:10px auto 0; position:relative; overflow:hidden; border:1px solid #666; background:#999;}
#inner{  position:absolute; left:0; top:1px; }
#inner li{ width:800px; height:448px; float:left;  overflow:hidden;}
#inner li img{width:800px; height:438px; }
#selects{ position:absolute; bottom:20px; right:50px;  z-index:666;}
#selects span{ float:left; padding:5px; background:#fff; margin-right:5px; border-radius:50%;}
#selects  .on{background:red;}
.translateZ{ -webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility: hidden;backface-visibility: hidden;}
</style>
</head>

<body>
<div id="outer">
	<ul id="inner">
    	<li><a href="https://www.qq.com"   target="_blank">  <img src="../../images/love5.jpg"></a></li>
        <li><a href="https://www.baidu.com" target="_blank"><img src="../../images/love4.jpg"/></a></li>
        <li><a href="https://www.sina.com" target="_blank"><img src="../../images/love3.jpg"/></a></li>
        <li><a href="https://www.163.com"  target="_blank">  <img src="../../images/106442464.jpg"/></a></li>
        <li><a data-href="http://www.baidu.com" ontouchmove="this.s=1;" ontouchend="this.s||window.open(this.dataset.href);this.s=0"> <img src="../../images/love1.jpg"/></a></li>
    </ul>
    <div id="selects"><span class="on"></span><span></span><span></span><span></span><span></span></div>
</div>
<!--<script src="mov3.js"></script>-->
<script src="../../js/jquery-1.9.1.min.js"></script>
<script>

  function getStyle(obj,attr){
        return  obj.currentStyle? obj.currentStyle[attr]: getComputedStyle(obj,false)[attr];
   }

window.onload = function(){
	var outer = document.getElementById(‘outer‘);
	var inner = document.getElementById(‘inner‘);
	var aLi = inner.getElementsByTagName(‘li‘);
	var w = parseInt(aLi[0].offsetWidth);
	var innerWid=inner.style.width = aLi.length * w + ‘px‘;
	var iNow=0;
	var startX = 0;
	var downLeft = 0;
	var bBtn=true;
	var startTime=0
	var maxDiatance=parseInt(w)-parseInt(innerWid);
	var nowLeft=0;

	//document.ontouchmove = function(e){
		//e.preventDefault();
	//};

	inner.addEventListener("touchstart",function(e){
		var self=this;
		var e=e||window.event;
		var touchs = e.changedTouches[0]; //手指头的一个
		startX = touchs.pageX||touchs.clientX;
	    downLeft= parseInt(getStyle(self,‘left‘)); //获取的是21px 带单位的  		//downLeft = this.offsetLeft;     this.offsetLeft获取不到border 以及padding
		var isMoveScale=false;

		inner.addEventListener("touchmove",move,false);
		inner.addEventListener("touchend",end,false);

		function move(e){
			   var e=e||window.event;
               if (e.touches.length > 1 || e.scale && e.scale !== 1) return;// // 当屏幕有多个touch或者页面被缩放过,就不执行move操作

			   var touchs = e.changedTouches[0];
				   startTime=+new Date; // startTime=Date.now();//html5
			       nowLeft=parseInt((touchs.pageX-startX)),
			       self=this;
				self.classList.add(‘translateZ‘);
			   if(downLeft>=0){//如果从左侧向右到尽头  增加阻力
			           if(isMoveScale){//修复跳跃问题 重置被缩小的 startX
							startX = touchs.pageX||touchs.clientX;
							isMoveScale=false;
						}
				        self.style.left=nowLeft/5+‘px‘;

				  }else if(downLeft<= maxDiatance){   //增加阻力
				        if(isMoveScale){//修复跳跃问题 重置被缩小的 startX
							startX = touchs.pageX||touchs.clientX;
							isMoveScale=false;
						}
				        self.style.left=parseInt(nowLeft/5)+maxDiatance+‘px‘;

				  }else {
				        self.style.left=nowLeft+downLeft+‘px‘;
			   }
			e.preventDefault();
		 }

		function end(e){
		    var e=e||window.event,
			 touchs = e.changedTouches[0],
			 self=this,
		     aboveY=parseInt(self.style.left);

			  if(aboveY>0){
                       $(inner).animate({left:0},200,function(){
							    self.classList.remove(‘translateZ‘); //移除 GPU hack
							    });
                    }
			  if(aboveY<0&&aboveY<maxDiatance){
                        $(inner).animate({left:maxDiatance+‘px‘},200,function(){
							    self.classList.remove(‘translateZ‘);  //移除 GPU hack
							    });
                    }
			var toLeft=touchs.pageX||touchs.clientX;
			if(toLeft<startX){//右侧往左边滑动  滑动距离大于一定 或者 滑动时间小于250毫秒
			    if(iNow!=aLi.length-1){

					if(Math.abs(nowLeft)>parseInt(w/3)||+new Date-startTime<200&&Math.abs(nowLeft)>30){
			        iNow++;
					//document.title=‘滑动了‘+nowLeft+‘/‘+w/3+(nowLeft>w/3);
					}
					$(inner).stop(true,false).animate({left:-iNow*w+‘px‘},400);
				}
				}else{ //左边往右侧滑动
				 if(iNow!=0){
					if(Math.abs(nowLeft)>parseInt(w/3)||+new Date-startTime<200&&Math.abs(nowLeft)>30){
			        iNow--;
					}

				   $(inner).stop(true,false).animate({left:-iNow*w+‘px‘},400);
				}
			}	

			//小圆点样式
			var selects=document.getElementById("selects"),
			    spans=selects.getElementsByTagName("span"),
			     i=0;
			for(;i<spans.length;i++){
			  	spans[i].className=‘‘;
			}
			spans[iNow].className=‘on‘;

			self.removeEventListener("touchmove",move,false);
			self.removeEventListener("touchend",end,false);	

		  };		

	 });// touchstart end

};
</script>
</body>
</html>
时间: 2024-08-24 14:01:51

移动端 触屏轮播图(完善版)的相关文章

移动端 触屏滑动条菜单(完善版 转)

移动端 触屏滑动条菜单(完善版) 1 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 8

移动端 触屏滑动条菜单(完善版)

<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=320,user-scalable=no" /> <title>菜单条</title> </head> <body> <style style='displ

淘宝店铺首页全屏轮播图制作

淘宝店铺首页全屏轮播图制作 | 浏览:1081 | 更新:2014-09-27 12:03 | 标签: 淘宝 很多朋友都想要做全屏轮播图,接下来我来说说我的经验 工具/原料 美图秀秀 方法/步骤 1.首先要制作或者搜寻图片宽度1920高度610的高画质图片 2.上传到淘宝图片空间,并复制其连接 3.将复制的连接替换到如下图以“jpg”结尾的那个地方.(有3个地方,可用3张图替换) 4.复制代码,进入淘宝店铺装修页面,新建“自定义内容区” 5.将自定义内容区置于顶部,编辑,输入代码界面,黏贴代码,

升级版的全屏轮播图

具备的功能: 1.左右自动轮播 2.鼠标悬停在图片上时,停止轮播,移除时,开始轮播 3,点击导航圆点,移到响应位置图片,同时导航圆点有0.3秒的显示特效 4.鼠标移到屏幕左右时,出现线性渐变特效,点击,会左右移到图片 最终结果图: 完整代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title>

js手机触屏轮播效果

以前自己用纯js写的,找了N就都没找到,还是从同事哪里重新拿过来的,仅是备忘,看过新浪新闻的手机触屏端后,自己写了个效果,比新浪的省代码多了 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Cache-Control&

触屏轮播

<!DOCTYPE html> <html lang="en"> <head> <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" /&g

淘宝店如何加入全屏轮播图片

淘宝店如何加入全屏轮播图片? | 浏览:5779 | 更新:2014-06-11 11:31 | 标签: 淘宝 1 2 3 4 5 分步阅读 百度经验:jingyan.baidu.com 开淘宝店的朋友,看到很多店铺有各式各样的轮播大图,很高端大气,您是否也想拥有一款属于自己的轮播图呢?今天我就交给大家如何制作全屏轮播图. 百度经验:jingyan.baidu.com 工具/原料 电脑/网络 百度经验:jingyan.baidu.com 方法/步骤 1 登录淘宝店. 登录到您的淘宝店,点击“卖家

web前端技术课程讲解之关于轮播图水平无缝滚动

制作这个简单的轮播图之前,你必须掌握html.css.以及JavaScript中的节点操作,定时器的使用,条件语句的使用以及JS修改样式和动画原理. 轮播图对于网页来说是个常见也可以说是必备的部分,而轮播图的形式也是各式各样,有简约的也有炫酷的.当然,这里我就只说简约的全屏轮播图水平无缝滚动. 首先是给出一个div标签,并且给这个标签设置宽高(宽高要和图片一致,否则给图片设置居中)以及溢出隐藏(overflow:hidden)并设置定位为相对定位(position:relative),然后用一个

轮播图测试点

移动端小程序轮播图测试点:1.是否自动轮播(大于一张时).2.每张轮播图轮播的时间,一般3秒.3.是否循环连续播放,首张至尾张,尾张至首张.4.是否可手动滑动轮播,向左或向右.5.首张是否可手动向右滑动至最后一张,尾张是否可手动向左滑动至第一张.6.轮播图为一张时,不需要轮播效果,两张以上才需要.7.轮播图的标题不可覆盖标识轮播图数量的标志,标题过长需省略,或把标题做成自动播放.8.图片是否清晰,是否符合窗口比例.9.轮播图对应的链接内容是否正确.后台管理系统:1.发布的轮播图是否和移动端对应.