`
llq056
  • 浏览: 1110 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

实现的简单的轮播插件

阅读更多
写的一个轮播插件 效果图如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>test </title>
	<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />


<style type="text/css">
*{margin:0;padding:0;}
ul,li,ol{ list-style:none;}
img,a img{ border:none;}
table{ border-collapse:collapse; border-spacing:0;}
em,i,u{ font-style:normal;}
a{ text-decoration:none;color:#434343;}
a:hover{ text-decoration:underline; color:#ff4000;}
body{font-size:12px; font-family:"宋体";color:#434343;}
.clear{clear:both;  font-size:0; overflow:hidden; height:0;}
.blank10{clear:both;  font-size:0; overflow:hidden; height:10px;}
.blank{clear:both;  font-size:0; overflow:hidden; height:10px; background:#FFF;}
/*********content css定义***********/
#content{width:960px;margin:0 auto;}
h1,h2,h3{ font-family:"微软雅黑";color:#00659b;}
h1,h2,h3,h4,h5,h6{ font-weight:bold;}
#footer{padding-bottom:0;margin:0px auto 0;}
/*********main css定义***********/
.mb15 {margin-bottom: 0px;}
#main{width:960px; margin:6px auto 10px; overflow:hidden;}
.sub_box{width:663px; height:300px; float:left; position:relative; overflow:hidden; border:1px solid #cccccc; background:url(http://trip.elong.com/trip/default/news/images/logo_gray.jpg) center center no-repeat; *background:url(http://trip.elong.com/trip/default/news/images/logo_gray.jpg) 220px 120px no-repeat;}
.sub_box img{border:none; width:663px; height:300px;}

.sub_nav{width:663px; height:25px; bottom:0px; position:absolute; color:#999999; z-index:200;}
.sub_no{height:25px; float:right;}
.sub_no li{display:block; width:25px; height:25px; float:left; overflow:hidden; line-height:25px; vertical-align:middle; text-align:center; background:#000000; filter:alpha(Opacity=70); Opacity:0.7; font-family:Arial; font-size:11px; color:#999999; cursor:pointer;}
.sub_no li.show{background:#ffffff; color:#000000;}
.sub_more{float:right; width:50px; height:25px; background:#000000; filter:alpha(Opacity=70); Opacity:0.7; color:#999999; text-align:center; line-height:25px;}
.sub_more a{color:#999999;}
.sub_more a:hover{color:#cccccc; text-decoration:none;}

</style>

<script type="text/javascript">

function $(id,tag){
	var re=(id&&typeof id!="string")?id:document.getElementById(id);
	if(!tag){
		return re;
	}
	else{
		return re.getElementsByTagName(tag);
	}
}

function move(moveWidth,pageItems,displayEl){
	var currentMoving=false;
	var carouselInterval;
	var changePageTimeout;
	var currentShowIndex=0;
	var currentHideIndex=1;
	var pShowEl=$(pageItems[currentShowIndex].itemId).parentNode;
	var initPageItemEvent=function(){
		var len=	pageItems.length;
		for(var i=0;i<len;i++){
			$(pageItems[i].btn).setAttribute("pageIndex",i);
			//按钮事件添加 可以做成配置项 添加自定义点击事件 此处没有处理
			$(pageItems[i].btn).onclick=	function(){
				var  cIndex=this.getAttribute("pageIndex")-0;
				if(currentMoving || currentShowIndex==cIndex){
					return false;
				}
				
				clearTimeout(changePageTimeout);
				currentHideIndex=cIndex;
				if(currentShowIndex>cIndex){
					changePaging(true);
				}else{
					changePaging(false);
				}
				
			}
		}
	};
	

	var changePosition=function(toRight){
		var currentItem=$(pageItems[currentShowIndex].itemId);
		var hidePage=$(pageItems[currentHideIndex].itemId);
		var hideLeft=hidePage.style.left;
		hideLeft=parseInt(hideLeft+0,10);
		var cWidth=Math.ceil(moveWidth/20);
	
		if(toRight){
			var hideMwidth=hideLeft+cWidth;
			var currMwidth=hideLeft+moveWidth;
		}else{
			var hideMwidth=hideLeft-cWidth;
			var currMwidth=hideLeft-moveWidth;
		}
		
		if((hideMwidth<=0 && !toRight)  ||  (toRight  && hideMwidth>=0)){
			hideMwidth=0;
			clearInterval(carouselInterval);
			setTimeout(function(){
				var currentItem=$(pageItems[currentShowIndex].itemId);
				currentItem.style.display="none";
				currentItem.style.left=moveWidth+"px";
				displayEl.appendChild(currentItem); 
				currentShowIndex=currentHideIndex;
				currentMoving=false;
				
			},0);
			changePageTimeout=setTimeout(function(){
						currentHideIndex++;
						if(!pageItems[currentHideIndex]){
							currentHideIndex=0;
						}
						changePaging();
				},5000);	
		}
//我测试用的left  
		currentItem.style.left=currMwidth+"px";
		hidePage.style.left =hideMwidth+"px";	
	};


	var changePaging=	function(toRight){
			currentMoving=true;
			$(pageItems[currentShowIndex].btn).className="";
			$(pageItems[currentHideIndex].btn).className="show";
			
			var hideItem=$(pageItems[currentHideIndex].itemId);
			var hideItemLeft=moveWidth;
			if(toRight){
				hideItemLeft=0-moveWidth;
				pShowEl.insertBefore(hideItem,$(pageItems[currentShowIndex].itemId)); 
			}else{
				pShowEl.insertBefore(hideItem,$(pageItems[currentShowIndex].itemId).nextSibling);
				
			}
			hideItem.style.left=hideItemLeft+"px";
			hideItem.style.display="";
			carouselInterval=setInterval(function(){changePosition(toRight);},100);
	};

	changePageTimeout=setTimeout(changePaging,5000);
	initPageItemEvent();
}

window.onload=function(){
	    //每次轮播移动的距离,每次移动按moveWidth./20计算
			var moveWidth=663;
		//轮播的数组  按钮和item dom对象的id  从0开始播放
		//对没有按钮的情况没有去兼容  
		//每次过5秒换图。多久播放下一幅图片没有做成配置选项 如修改可做成配置 也可直接替换5000
	var pageItems=[
		{
		btn:"btnPage1",
		itemId:"pageNum1"
		},{
		btn:"btnPage2",
		itemId:"pageNum2"
		},{
		btn:"btnPage3",
		itemId:"pageNum3"
		},{
		btn:"btnPage4",
		itemId:"pageNum4"
		},{
		btn:"btnPage5",
		itemId:"pageNum5"
		}
	];	
	//调用接口播放
	move(moveWidth,pageItems,$("displayDiv"));
};
</script>	
	
</head>

<body >

<div class="sub_box">
			<div id="p-select" class="sub_nav">
				<div class="sub_no" id="appNum">
					<ul >
						<li class="show"  id="btnPage1">1</li>
						<li class="" 	id="btnPage2">2</li>
						<li class=""	id="btnPage3">3</li>
						<li class=""	id="btnPage4">4</li>
						<li class=""	id="btnPage5">5</li>
					</ul>
				</div>
			</div>
			<div id="show" style="position:relative;">
				
					<div style="left:0px;position:absolute;" id="pageNum1">
														<img src="1.png">
					
					</div>
				

			</div>
</div>

<div id="displayDiv">
	<div style="left:663px;position:absolute;display:none;" id="pageNum2">			
									<img src="2.png">			
					</div>
	<div style="left:663px;position:absolute;display:none;" id="pageNum3">					
									<img src="3.png">
					
	</div>
	<div style="left:663px;position:absolute;display:none;" id="pageNum4">	
							<img src="4.png">	
	</div>
	
	<div style="left:663px;position:absolute;display:none;" id="pageNum5">				
								<img src="5.png">				
	</div>
<div>

	

</body>
</html>



  • 大小: 19.9 KB
  • 大小: 116.3 KB
  • 大小: 116.2 KB
  • 大小: 116.7 KB
分享到:
评论

相关推荐

    简单实用的图片轮播插件

    总的来说,"简单实用的图片轮播插件"是一个方便网页设计师展示多张图片的工具,它利用jQuery库实现动态效果,并且因为其代码简洁、易于集成的特点,使得即使是初级开发者也能快速上手使用。在网页设计中,这类插件...

    各种轮播插件

    综上所述,这个压缩包中的轮播插件集合为开发者提供了多样化的选择,无论是用于简单的图片展示,还是复杂的Web应用程序,都能找到适合的解决方案。通过实践和研究这些插件,开发者可以提升其网站或App的视觉吸引力和...

    jquery响应式图片轮播插件

    该jQuery响应式图片轮播插件的实现主要依赖于jQuery库,这是一个轻量级、高性能的JavaScript库,提供了丰富的DOM操作、事件处理、动画以及Ajax交互等功能,使得开发复杂的网页交互变得简单。 接下来,我们将分析...

    Bootstrap 第18章 轮播插件

    Bootstrap轮播插件通过简单的HTML和CSS结构,配合JavaScript插件,能够实现多张图片或内容的自动切换,提供向前和向后导航,并且可以包含可选的指示器,以显示当前的滑动位置。这使得轮播成为网站中产品展示、新闻...

    JQuery轮播插件

    基于jQuery的轮播插件因其丰富的功能和简单易用的API,成为了开发者们首选的实现工具。本篇文章将深入探讨jQuery轮播插件的工作原理、常见效果及其实现方法。 一、jQuery轮播插件概述 jQuery是一个轻量级的...

    织梦banner轮播图插件

    "织梦banner轮播图插件"是一款专为织梦内容管理系统(DedeCMS)设计的扩展组件,旨在帮助用户轻松实现网站首页的动态轮播图功能。这款插件允许用户自定义创建多个轮播图分类,每个分类下可以添加多张图片,同时支持...

    myfocus图片轮播插件

    【myfocus图片轮播插件】是一款用于网页中创建动态图片展示效果的JavaScript插件,其核心在于提供了一种简洁而高效的方式来实现多种不同的轮播效果。MyFocus-v2.0是该插件的一个版本,它包含完整的库文件以及相关的...

    深入解析js轮播插件核心代码的实现过程

    在深入解析JS轮播插件核心代码的实现过程之前,我们需要了解轮播插件在现代网页设计中的重要性。轮播插件常用于展示图片、广告或其他元素,它可以为用户提供一种动态的浏览体验。一个典型的轮播插件应当具备良好的...

    onethink轮播插件

    标题中的“onethink轮播插件”是指在Onethink框架中开发的一款用于实现图片轮播效果的组件。Onethink是一个基于ThinkPHP框架的快速开发平台,它提供了丰富的功能模块,帮助开发者快速构建各类Web应用。在这个场景中...

    jQuery响应式图片无缝轮播插件

    总的来说,“jQuery响应式图片无缝轮播插件”是一个强大的工具,它简化了网页图片轮播的实现过程,同时提供了优秀的用户体验。无论是在企业网站、电子商务平台还是个人博客,都能看到它发挥着作用,让图片展示变得...

    slidesjs轮播插件带实例代码

    SlidesJS是一款轻量级、高性能的JavaScript轮播插件,专为网页设计师和开发者设计,以提供优雅且灵活的图片或内容轮播解决方案。这款插件以其简洁的API和易于定制的特点深受喜爱,使得在网站上实现专业级别的轮播...

    jquery垂直图片轮播插件PgwSlider

    **jQuery垂直图片轮播插件PgwSlider详解** 在网页设计中,轮播图是一种常见的展示方式,用于在有限的空间内展示多张图片或内容。PgwSlider是一款基于jQuery的轻量级插件,专为创建垂直轮播图而设计。它的主要优点是...

    jquery环状轮播图插件

    这款环状轮播图插件就是利用jQuery的强大功能,为开发者提供了简单易用的API来创建动态轮播效果。 **2. 响应式设计** 响应式设计是现代Web开发的关键组成部分,允许网页根据用户的设备和屏幕尺寸自动调整布局。此...

    微信小程序实现3D轮播图效果(非swiper组件)

    在给定的代码中,使用了一个简单的循环结构在`.dots`类中动态生成指示器,并根据当前图片索引设置相应点位的样式为`.active`,从而向用户明确指示当前的轮播位置。 值得注意的是,为了确保微信小程序的性能和兼容性...

    轮播插件--网址汇总,

    轮播插件是一种常用的前端组件,主要用于实现网页中图片或其他元素的自动或手动切换展示效果。这类插件广泛应用于广告轮播、产品展示等场景,能够极大地提升用户体验。 #### 二、Vue-Awesome-Swiper 插件介绍 **...

    自己封装的jquery插件@实现了简单的轮播图

    本文将深入探讨如何使用jQuery封装一个简单的轮播图插件,结合描述和标签,我们将涵盖以下知识点: 1. **jQuery基础**: jQuery的核心功能包括选择器、DOM操作、事件处理和动画效果。在封装轮播图插件时,我们首先...

    Flutter 轮播图插件

    3. **flutter_swiper**:较早的版本,虽然已经停止维护,但很多现有的轮播图实现可能仍基于此插件。 以下是一个简单的 `flutter_swiper` 使用示例: ```dart import 'package:flutter_swiper_null_safety/flutter_...

    js使用swiper实现层叠轮播效果实例代码

    swiper实现轮播图几乎是没有一点点技术含量,但是用起来却很方便,包括对移动端的支持也很好。 由于简单这里当然就不会去详细介绍了,下面就来开始本文的正文内容 实现过程: 一.移动端-需求swiper 4.0.3实现层叠轮播 ...

    jQuery轮播图插件,背景图实现轮播图,轮播图可增加文字

    代码简介:兼容IE8的jQuery轮播图插件是一款兼容性很好的,使用非常简单的网站焦点图代码,依赖jquery和pageSwitch.js来实现轮播效果,轮播图以背景图的方式插入到当前页面进行轮播,并且可自定义轮播间隔时间等一...

Global site tag (gtag.js) - Google Analytics