原生js手动轮播图

手动轮播图,为轮播图中的一种,轮播图主要有无缝轮播,手动轮播,延迟轮播,切换轮播等等。。。

轮播图主要用于展现图片,新出商品,词条,又能美观网页。給网页中增加动态效果。

手动轮播,是小编认为最简单的一种轮播方式,既能左右翻页,还能通过悬浮按钮,快速预览图片,所以今天就给大家写一个原生js手动轮播图。

一,利用JavaScript制作手动轮播图,首先排版。

引入默认样式表(可以手写);

	<link rel="stylesheet" href="css/Default style sheet.css" />//本博客有css默认样式表可以下载。

div排版布局:

<body>  <div id="box">			<div id="lunbo"><img src="img/1.jpg" id="img"/></div>			<div id="left"><</div>			<div id="right">></div>			<div id="radiu">				<ul>					<li>1</li>					<li>2</li>					<li>3</li>					<li>4</li>					<li>5</li>				</ul>			</div>		</div>
	</body>

二,定义div的CSS样式,给div设置宽高,定位。

<style>
			body{				background: darkturquoise;			}			#box{				height:320px;				width:480px;				margin: 3px auto;				border: 2px solid red;			}			#lunbo{				height: 292px;				width:453px;				border: 1px solid yellow;				margin: 0px auto;				position: relative;			}			#left{				height: 60px;				width: 60px;				font-size: 60px;				text-align: center;				line-height: 60px;				position: absolute;				top:150px;				left: 440px;				color: black;			}			#right{				height: 60px;				width: 60px;				font-size: 60px;				text-align: center;				line-height: 60px;				position: absolute;				top:150px;				left: 880px;				color: black;			}		#radiu{				height: 30px;				width: 240px;				text-align: center;

margin: 0px auto;			}			#radiu li{				float: left;				background: white;				height: 30px;				width: 30px;				line-height: 30px;				border-radius:50% ;				margin-right:6px;			}			.active{				background: orange;				color: ;			}
		</style>

原生js代码:

<script>
				window.onload=function(){				var ridiu=document.getElementById("radiu")				var right=document.getElementById("right");				var left=document.getElementById("left")				var img=document.getElementById("img");				var oli=ridiu.getElementsByTagName("li")				var arry=[‘img/1.jpg‘,‘img/2.jpg‘,‘img/3.jpg‘,‘img/4.jpg‘,‘img/5.jpg‘]			   var a=null;

right.onclick=function(){			    		a++			    		if(a>arry.length-1){			    			a=0;			    			}

img.src=arry[a]			  }			    	left.onclick=function(){			    		a--			    		if(a<0){			    			a=arry.length-1;			    			}

img.src=arry[a]

}

for (var i=0;i<oli.length;i++) {

oli[i].onclick=function(){			    			a++			    	    if(a==arry.length){			    			a=0;			    			}			    	        img.src=arry[a];			    		}

}

}
		</script>

HTML全部效果代码:

<!DOCTYPE html><html>	<head>		<meta charset="utf-8">		<title>手动轮播图</title>		<link rel="stylesheet" href="css/Default style sheet.css" />		<style>			body{				background: darkturquoise;			}			#box{				height:320px;				width:480px;				margin: 3px auto;				border: 2px solid red;			}			#lunbo{				height: 292px;				width:453px;				border: 1px solid yellow;				margin: 0px auto;				position: relative;			}			#left{				height: 60px;				width: 60px;				font-size: 60px;				text-align: center;				line-height: 60px;				position: absolute;				top:150px;				left: 440px;				color: black;			}			#right{				height: 60px;				width: 60px;				font-size: 60px;				text-align: center;				line-height: 60px;				position: absolute;				top:150px;				left: 880px;				color: black;			}		#radiu{				height: 30px;				width: 240px;				text-align: center;

margin: 0px auto;			}			#radiu li{				float: left;				background: white;				height: 30px;				width: 30px;				line-height: 30px;				border-radius:50% ;				margin-right:6px;			}			.active{				background: orange;				color: ;			}		</style>		<script>			window.onload=function(){				var ridiu=document.getElementById("radiu")				var right=document.getElementById("right");				var left=document.getElementById("left")				var img=document.getElementById("img");				var oli=ridiu.getElementsByTagName("li")				var arry=[‘img/1.jpg‘,‘img/2.jpg‘,‘img/3.jpg‘,‘img/4.jpg‘,‘img/5.jpg‘]			   var a=null;

right.onclick=function(){			    		a++			    		if(a>arry.length-1){			    			a=0;			    			}

img.src=arry[a]			  }			    	left.onclick=function(){			    		a--			    		if(a<0){			    			a=arry.length-1;			    			}

img.src=arry[a]

}

for (var i=0;i<oli.length;i++) {

oli[i].onclick=function(){			    			a++			    	    if(a==arry.length){			    			a=0;			    			}			    	        img.src=arry[a];			    		}

}

}		</script>	</head>	<body>		<div id="box">			<div id="lunbo"><img src="img/1.jpg" id="img"/></div>			<div id="left"><</div>			<div id="right">></div>			<div id="radiu">				<ul>					<li>1</li>					<li>2</li>					<li>3</li>					<li>4</li>					<li>5</li>				</ul>			</div>		</div>	</body></html>

效果图:

body{
                background: darkturquoise;
            }
            #box{
                height:320px;
                width:480px;
                margin: 3px auto;
                border: 2px solid red;
            }
            #lunbo{
                height: 292px;
                width:453px;
                border: 1px solid yellow;
                margin: 0px auto;
                position: relative;
            }
            #left{
                height: 60px;
                width: 60px;
                font-size: 60px;
                text-align: center;
                line-height: 60px;
                position: absolute;
                top:150px;
                left: 440px;
                color: black;
            }
            #right{
                height: 60px;
                width: 60px;
                font-size: 60px;
                text-align: center;
                line-height: 60px;
                position: absolute;
                top:150px;
                left: 880px;
                color: black;
            }
        #radiu{
                height: 30px;
                width: 240px;
                text-align: center;
                
                margin: 0px auto;
            }
            #radiu li{
                float: left;
                background: white;
                height: 30px;
                width: 30px;
                line-height: 30px;
                border-radius:50% ;
                margin-right:6px;
            }
            .active{
                background: orange;
                color: ;
            }

原文地址:https://www.cnblogs.com/web928943/p/10000115.html

时间: 2024-10-08 21:15:11

原生js手动轮播图的相关文章

用原生js封装轮播图

原生js封装轮播图 对于初学js的同学来说,轮播图还是一个难点,尤其是原生js封装轮播图代码,下面是我之前做的一个轮播图项目中封装好的一些代码,有需要的同学可以看一下,有什么不懂的可以看注释,注释看不懂的可以直接私信我 slide.js /* * 轮播图 */ function Slide(elem, ms, d, ind){ this.el = elem; this.w = parseInt(getStyle(elem, "width")); this.h = parseInt(ge

封装一个简单的原生js焦点轮播图插件

轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放.本篇文章的主要目的是分享封装插件的思路. 轮播图的我一开始是写成非插件形式实现的效果,后来才改成了封装成插件的形式. 首先要明白轮播图的实现原理和基本布局,大概就是外面有一个容器包裹着(通常是div),容器设置宽高,以及overflow为hidden,超出宽高部分隐藏, 容器里面又包含着另一个容器,包裹着所有的图片,宽为所有图片的总宽度,ul的position为absolute,通过改变ul的left

原生js简单轮播图 代码

在团队带人,突然被人问到轮播图如何实现,进入前端领域有一年多了,但很久没自己写过,一直是用大牛写的插件,今天就写个简单的适合入门者学习的小教程.当然,轮播图的实现原理与设计模式有很多种,我这里讲的是用面向过程函数式编程去实现,相对于面向对象设计模式,代码难免会显得臃肿冗余.但没有面向对象的抽象却很适合新手理解与学习.已经在BAT的同学看到希望少喷点.另外可以多提意见. 轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏.通过计算偏移量利用定时器实现自动播放,或通过

原生js封装轮播图

个人实际开发中用到的效果问题总结出来便于自己以后开发查看调用,如果也适用其他人请随意拿走勿喷就行! 原生js对于思路要求比较高,在js代码我都写有备注,足够理解并使用,即使是小白或者刚入行的程序员也比叫好理解,其轮播图只是一个简单的效果,缺点没有写动画效果看起来比较生硬,优点简单好学,容易理解,非常实用 轮播图介绍 : 三张图片,图片下方有对应图片数量的三个指示点,左右有切换指示,左右指示可要可不要 HTML代码 <div id="mlBox"> <div id=&q

使用原生js实现轮播图效果

知乎原文 我的博客 微信公众号这几天在逛网站的时候,发现很多网站都有轮播图这个效果,所以我就仿照小米的官网用原生js写了一个轮播图效果,希望大家喜欢.这是我发布在github上的最后实现的效果:https://heternally.github.io/... 下面我简单跟大家说一下我实现该效果的过程,如果有什么错误的地方,欢迎大家说出来,以方便大家互相学习. 我相信前面简单的html+css大家应该都会,我这里就不说了,简单给大家展示一下代码: HTML部分 <div id="wrap&q

手把手原生js简单轮播图

在团队带人,突然被人问到轮播图如何实现,进入前端领域有一年多了,但很久没自己写过,一直是用大牛写的插件,今天就写个简单的适合入门者学习的小教程.当然,轮播图的实现原理与设计模式有很多种,我这里讲的是用面向过程函数式编程去实现,相对于面向对象设计模式,代码难免会显得臃肿冗余.但没有面向对象的抽象却很适合新手理解与学习.已经在BAT的同学看到希望少喷点.另外可以多提意见. 轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏.通过计算偏移量利用定时器实现自动播放,或通过

原生js实现轮播图原理

轮播图的原理1.图片移动实现原理:利用浮动将所有所有照片依次排成一行,给这一长串图片添加一个父级的遮罩,每次只显示一张图,其余的都隐藏起来.对图片添加绝对定位,通过控制left属性,实现照片的移动. 2.图片移动动画原理:从a位置移动到b位置,需要先计算两点之间的差值,通过差值和时间间隔,计算出每次移动的步长,通过添加定时器,每次移动相同的步长,实现动画效果. 3.图片定位停止原理:每一张照片都有相同的宽度,每张照片都有一个绝对的定位数值,通过检测定每次移动后,照片当前位置和需要到达位置之间的距

原生js实现轮播图

很多网站上都有轮播图,使用起来也比较炫酷,但找到一个系统的介绍却很难,这里做一个简单的介绍. 原理:将一些列的图片在一行中平铺,然后计算偏移量再利用定时器实现定时轮播. 步骤一: 建立html基本布局,如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>轮播图</title> </head> <body> <

UIScrollView手动轮播图

没有添加定时器 #import "JZScrollViewController.h" @interface JZScrollViewController () <UIScrollViewDelegate> @property (nonatomic, strong) UIScrollView * scrollView;@property (nonatomic, strong) UIPageControl * pageControl; @end @implementation