zoukankan      html  css  js  c++  java
  • 移动端轮播图实例

    移动端轮播图

    采用手机端页面自适应解决方案—rem布局

    <!doctype html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8" />
    	<meta name="viewport" content="width=device-width,user-scalable=no">
    	<title>移动端轮播图--cck</title>
    <script type="text/javascript">
    	// 手机端页面自适应解决方案—rem布局
    	(function (doc, win) {
            var docEl = doc.documentElement,
                resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
                recalc = function () {
                    var clientWidth = docEl.clientWidth;
                    docEl.style.fontSize = clientWidth / 15 + 'px';
                };
    
            if (!doc.addEventListener) return;
            win.addEventListener(resizeEvt, recalc, false);
            doc.addEventListener('DOMContentLoaded', recalc, false);
        })(document, window);
    
    	// 阻止pc和浏览器默认行为。
    	document.addEventListener('touchstart',function(ev){
    		ev.preventDefault();
    	});
    </script>
    <style>
    body{
    	margin: 0;
    }
    .wrap{
    	height: 8.4rem;
    	position: relative;
    }
    .list{
    	padding: 0;
    	margin: 0;
    	400%;
    	position: absolute;
    	top: 0;
    	left: 0;
    	list-style: none;
    }
    .list li{
    	float: left;
    	 15rem;
    }
    .list img{
    	 15rem;
    	display: block;
    }
    nav{
    	 15rem;
    	height: 10px;
    	position: absolute;
    	bottom: 10px;
    	z-index: 1;
    	text-align:center;
    }
    nav a{
    	10px;
    	height: 10px;
    	display: inline-block;
    	background: red;
    	border-radius:50%;
    	vertical-align:top;
    }
    nav a.active{
    	background:#fff;
    }
    
    </style>
    </head>
    <body>
    	<section class="wrap">
    		<ul class="list">
    			<li>
    				<img src="http://img1.3lian.com/2015/a1/14/d/151.jpg" alt="" />
    			</li>
    			<li>
    				<img src="http://photos.tuchong.com/110168/f/2034247.jpg" alt="" />
    			</li>
    			<li>
    				<img src="http://img1.3lian.com/2015/a1/129/d/193.jpg" alt="" />
    			</li>
    			<li>
    				<img src="http://img.kutoo8.com//upload/image/78018037/201305280911_960x540.jpg" alt="" />
    			</li>
    		</ul>
    		<nav>
    			<a href="javascript:;" class="active"></a>
    			<a href="javascript:;"></a>
    			<a href="javascript:;"></a>
    			<a href="javascript:;"></a>
    		</nav>
    	</section>
    <script type="text/javascript">
    
    	var wrap = document.querySelector('.wrap'),
    		list = document.querySelector('.list'),
    		a = document.querySelectorAll('a');
    		disX = 0, // 按下的坐标
    		listL = 0, // 当前按下的list的left值
    		w = wrap.clientWidth, // 一张图片的宽度
    		len = 0,
    		n = 0; // 默认第一个小点为白色
    
    	list.innerHTML += list.innerHTML;  // 将list复制一份
    	len = list.children.length; // list节点数量的长度
    	list.style.width = w * len +'px';
    
    
    	list.addEventListener('touchstart', start);
    	list.addEventListener('touchmove', move);
    	list.addEventListener('touchend', end);
    
    	function start (ev) {
    		var e = ev.changedTouches[0]; // changedTouches  为涉及当前事件的手指的一个列表
    
    		list.style.transition = 'none';
    		disX = e.pageX; // e.pageX——手指所按位置相对整个页面的坐标
    
    		/*
    			手指按下时,判断是第几张图片,若为第一张,则快速拉到第五张上;若为最后一张张,则快速拉到第四张上
    		*/
    
    		var num = Math.round( list.offsetLeft / w );
    		console.log(num)
    		if(num == 0) {
    			num = a.length;
    			list.style.left = -num * w + 'px';
    		}
    
    		if(-num == len-1) {
    			num = a.length - 1;
    			list.style.left = -num * w + 'px';
    		}		
    
    		listL = this.offsetLeft;
    	}
    
    	function move (ev) {
    		var e = ev.changedTouches[0];
    		list.style.left = (e.pageX - disX) + listL +'px';
    	}
    
    	function end (ev) {
    		var num = Math.round( list.offsetLeft / w ); // 当前需要显示的那一张图片的索引
    
    		list.style.transition = '.5s';
    		list.style.left = num * w +'px';
    
    		a[n].className = '';
    		a[-num % a.length].className = 'active';
    		n = -num % a.length;
    	}
    
    </script>
    </body>
    </html>
    
  • 相关阅读:
    网页加速的14条优化法则 网站开发与优化
    .NET在后置代码中输入JS提示语句(背景不会变白)
    C语言变量声明内存分配
    SQL Server Hosting Toolkit
    An established connection was aborted by the software in your host machine
    C语言程序设计 2009春季考试时间和地点
    C语言程序设计 函数递归调用示例
    让.Net 程序脱离.net framework框架运行
    C语言程序设计 答疑安排(2009春季 110周) 有变动
    软件测试技术,软件项目管理 实验时间安排 2009春季
  • 原文地址:https://www.cnblogs.com/cckui/p/7731835.html
Copyright © 2011-2022 走看看