`
llq056
  • 浏览: 1088 次
  • 性别: 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
分享到:
评论

相关推荐

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

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

    焦点轮播插件

    焦点图轮播插件,基于jquery实现,简单方便。。。

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

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

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

    自己封装的jquery插件@实现了简单的轮播图以及图片点击后的回调实现,自动播放等,

    vue实现的轮播图

    此插件应用了一些vue的简单的事件绑定,列表循环以及显示隐藏 同时为了使图片轮播交互效果更好,还使用了过渡(vue官网有详细介绍) 可以在标签内设置 enter-active-class 和 leave-active-class来产生轮播平滑的...

    DJANGO课件_轮播图

    主要是用DJANGO来实现网页的轮播图,实现软件是PYCHARM需要用到GULP实际上用sublime也能进行修改和编辑.

    轮播+轮播插件

    主要实现轮播功能机制,用户可控制图片大小,控制所需图片,控制位置,简单调用。

    Vue + ts实现轮播插件的示例

    ts,打算用 ts 写一个练手项目,参照的网站内容是 wanandroid,这个接触过android开发的同学可能更i了解一些,其实一开始是打算后台全部都自己写的,不过奈何一个懒字,所以现在的打算就是自己实现登录注册简单的...

    支持响应式手机端jQuery图片轮播插件unslider.zip

    支持响应式手机端jQuery图片轮播插件unslider,非常强大的jQuery插件,支持响应式手机端 、支持函数回调、支持左右按钮切换,可以自定义是否使用响应式fluid:true/false、是否显示 圆点切换dots:true/false,是否...

    2019最新原生js实现带缩略图文字说明左右轮播切换相册插件.zip

    简单实用原生js实现带缩略图文字说明左右轮播切换相册插件下载。一款基于原生JavaScript实现图片相册幻灯轮播图特效插件,没有引入任何jQuery库,短短数行原生php中文网实现。

    vue移动端轮播图(触摸滑动滚动、自动轮播、无缝滚动、循环无回滚)

    基于vue实现移动端轮播图,主要功能手指触摸滑动滚动、自动轮播、无缝滚动、循环无回滚等。图片切换有过渡效果。适合前端初学者学习。欢迎有疑问的小伙伴私聊提问哦。

    超酷jQuery 3D旋转木马效果轮播图插件

    jCarrousel是一款炫酷且强大的3D旋转木马效果轮播图jQuery插件。该旋转木马插件可以自适应屏幕大小来调整图片的间距,可实现自动播放等。jCarrousel代码简洁,使用简单,值得推荐。

    【JavaScript源代码】Swiper.js插件超简单实现轮播图.docx

    Swiper.js插件超简单实现轮播图  Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端。能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果。超好用 话不多说,直接上教程  1、首先加载...

    myfocus插件

    轮播插件,仅需简单的配置即可实现多种轮播效果。完全独立,不依赖任何JS库;完全免费,这意味着你可以在任何地方使用。

    简单的jquery轮播效果

    想要拥有jquery轮播的效果吗?本jquery轮播效果实现了轮播的核心功能,这个只是给出了轮播的一个简单的例子,以后会提供更简单、灵活的jquery轮播插件,敬请期待...

    使用Unity3d实现一个简单的桌面图片轮播工具

    使用Unity3d实现一个简单的桌面图片轮播工具

    snap-swiper:基于css的scroll-snap-type实现自动轮播的效果插件

    基于css的scroll-snap-type实现自动轮播的效果插件 背景 实现一个很简单的自动轮播的效果 思考: 传统的 swiper 太重了,里面封装了很多我们不需要的功能,一个简单的功能没必要那么中的文件。那就自己实现吧 实现...

    HTML5实现手机客户端轮播图欢迎页面

    一个简单的HTML5页面,使用fullPage.js插件做的轮播图页面,可以直接放在Android项目中的 assets 文件夹下作为app欢迎页面来使用,结构简单,替换图片就可以放入你的项目中 另外,没有积分的同学 到...

    jQuery carousel图片叠加旋转木马轮播切换效果

    基于jQuery carousel图片叠加旋转木马轮播切换效果,只要引入就可以 使用非常简单,基于jQuery carousel图片叠加旋转木马轮播切换效果,只要引入就可以 使用非常简单,

Global site tag (gtag.js) - Google Analytics