JavaScript banner轮播 左右切换 圆点点击切换
1、效果如下图:

2、源码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript banner轮播 左右切换 圆点点击切换</title> <style type="text/css">
div,ul,li,a,span,img{margin:0;padding:0;}
#banner {
overflow:hidden;
width:100%;
height:400px;
position:relative;
float:left;
padding-bottom: 10px;
}
#tab>img:not(:first-child){
display:none;
}
.lunbo_btn {
height: 15px;
width: 100%;
margin: 0px auto;
margin-top: -40px;
position: absolute;
z-index: 3;
text-align: center;
}
.lunbo_btn span {
width:14px;
height:14px;
display:inline-block;
background-color:#b4b5b7;
border-radius:50%;
margin:0px 2px;
cursor:pointer;
}
.lunbo_btn span.hover {
background-color:#ffb23c;
}
.arrow {
display: none;
width: 30px;
height: 60px;
background-color: rgba(0,0,0,0.4);
position: absolute;
top: 50%;
margin-top: -30px;
z-index:999;
}
.arrow span {
display: block;
width: 10px;
height: 10px;
border-bottom: 2px solid #fff;
border-left: 2px solid #fff;
}
.slider_left {
margin: 25px 0 0 10px;
transform: rotate(45deg);
}
.prve {
left: 0;
}
.next {
right: 0;
}
.slider_right {
margin: 25px 0 0 5px;
transform: rotate(-135deg);
}
.arrow:hover{background:#444;}
#banner:hover .arrow{display:block;}
</style> </head>
<body> <div id="banner">
<!-- 轮播图片 -->
<div id="tab">
<img class="tabImg" src="data:images/banner1.jpg" height="400"/>
<img class="tabImg" src="data:images/banner2.jpg" height="400"/>
<img class="tabImg" src="data:images/banner3.jpg" height="400"/>
<img class="tabImg" src="data:images/banner4.jpg" height="400"/>
</div>
<!-- 指示符 -->
<div class="lunbo_btn">
<span num="0" class="tabBtn hover"></span>
<span num="1" class="tabBtn"></span>
<span num="2" class="tabBtn"></span>
<span num="3" class="tabBtn"></span>
</div>
<!-- 左右切换按钮 -->
<div class="arrow prve">
<span class="slider_left"></span>
</div>
<div class="arrow next">
<span class="slider_right"></span>
</div>
</div> <script type="text/javascript"> //轮播图
var curIndex=0;//初始化
var img_number = document.getElementsByClassName('tabImg').length;
var _timer = setInterval(runFn,2000);//2秒
function runFn(){ //运行定时器
curIndex = ++curIndex == img_number ? 0 : curIndex;//算法 4为banner图片数量
slideTo(curIndex);
} //圆点点击切换轮播图
window.onload = function () { //为按钮初始化onclick事件
var tbs = document.getElementsByClassName("tabBtn");
for(var i=0;i<tbs.length;i++){
tbs[i].onclick = function () {
clearInterval(_timer);//细节处理,关闭定时,防止点切图和定时器函数冲突
slideTo(this.attributes['num'].value);
curIndex = this.attributes['num'].value
_timer = setInterval(runFn,2000);//点击事件处理完成,继续开启定时轮播
}
}
} var prve = document.getElementsByClassName("prve");
prve[0].onclick = function () {//上一张
clearInterval(_timer);//细节处理,关闭定时,防止点切图和定时器函数冲突
curIndex--;
if(curIndex == -1){
curIndex = img_number-1;
}
slideTo(curIndex);
_timer = setInterval(runFn,2000);//点击事件处理完成,继续开启定时轮播
} var next = document.getElementsByClassName("next");
next[0].onclick = function () {//下一张
clearInterval(_timer);//细节处理,关闭定时,防止点切图和定时器函数冲突
curIndex++;
if(curIndex == img_number){
curIndex =0;
}
slideTo(curIndex);
_timer = setInterval(runFn,2000);//点击事件处理完成,继续开启定时轮播
} //切换banner图片 和 按钮样式
function slideTo(index){
console.log(index)
var index = parseInt(index);//转int类型
var images = document.getElementsByClassName('tabImg');
for(var i=0;i<images.length;i++){//遍历每个图片
if( i == index ){
images[i].style.display = 'inline';//显示
}else{
images[i].style.display = 'none';//隐藏
}
}
var tabBtn = document.getElementsByClassName('tabBtn');
for(var j=0;j<tabBtn.length;j++){//遍历每个按钮
if( j == index ){
tabBtn[j].classList.add("hover"); //添加轮播按钮hover样式
curIndex=j;
}else{
tabBtn[j].classList.remove("hover");//去除轮播按钮hover样式
}
} } </script>
</body>
</html>
完毕!
good job! good luck!
JavaScript banner轮播 左右切换 圆点点击切换的更多相关文章
- 用JavaScript制作banner轮播图
JavaScript_banner轮播图 让我们一起来学习一下用js怎么实现banner轮播图呢? 直接看代码: <!DOCTYPE html> <html> <head ...
- 原生无缝Banner轮播图
话不多说,先展示效果图.由于录制工具,稍显卡顿,实际是流畅的.可以看到实现了无缝轮播,鼠标悬停,点击左右上下按钮切换Banner的功能,如图1所示. 图1 原生无缝banner效果展示 以我这个轮播图 ...
- HTML+CSS+Javascript实现轮播图效果
HTML+CSS+Javascript实现轮播图效果 注意:根据自己图片大小来更改轮播图大小. <!doctype html> <html> <head> < ...
- JavaScript焦点轮播图
在慕课学习了JavaScript焦点轮播图特效,在此做一个整理. 首先是html结构,我用的是本地同文件夹下的三张图片,多出来的第一张(pic3副本)和最后一张图片(pic1副本)是为了实现无缝切换效 ...
- [js开源组件开发]js轮播图片支持手机滑动切换
js轮播图片支持手机滑动切换 carousel-image 轮播图片,支持触摸滑动. 例子见DEMO http://www.lovewebgames.com/jsmodule/carousel-ima ...
- 基于Jquery的banner轮播插件,简单粗暴
新手练习封装插件,觉着在前端这一块的轮播比较多,各种旋转木马一类的3D旋转,技术不够,所以封装了一个简单的banner轮播插件,功能也比较简单,就是左右向的轮播. 先挂地址https://github ...
- jQuery与原生js实现banner轮播图
jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...
- 第一百五十五节,封装库--JavaScript,轮播器
封装库--JavaScript,轮播器 html <div id="banner"> <img src="img/banner1.jpg" a ...
- 安卓开发笔记(三十二):banner轮播图的实现
一.activity.xml 我这里主要爬取的爱奇艺首页的图片进行轮播,应用了两个github上的开源库,一个banner的库,一个加载网络图片的库,用开源库能够极大地节省我们编写代码的时间. < ...
随机推荐
- 移动开发在路上-- IOS移动开发系列 多线程二
最近太忙没太多的时间,忙碌的码农生活空下来一点时间,都会挤出来看一些技术或者咨询的文章,废话不多说,直奔主题. 接着上一次的继续说. 定时器在多线程的使用 NSRunLoop 是线程相关的基础框架的一 ...
- 2019 AI Bootcamp Guangzhou 参会日记
2019年的全球AI训练营在北京.上海.广州.杭州.宁波五个地方同时举办! 12月14日,微软全球AI Bootcamp活动再次驾临广州,本次会议结合 ML.NET 和基于 SciSharp 社区介绍 ...
- HashMap 实现原理解析
概要 HashMap 最早出现在 JDK 1.2 中,底层基于散列算法实现.HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0.HashMap 并不保证 ...
- 通过ansible自动化部署zabbix应用
zabbix在实际的应用中,可能需要监控的主机非常多,而每个主机的操作系统类型.版本也都不尽相同,在这种环境下,通过手动安装zabbix的agent端已经不现实了,此时就需要借助自动化工具完成zabb ...
- ARTS-S govendor
govendor init govendor add +external
- Django 07
目录 ORM查询优化 only与defer(单表) select_related与prefetch_related(跨表) choices参数 MTV与MVC模型 Ajax简介 前后端传输数据编码格式 ...
- django基础之day05,orm字段参数,自定义需要的字段,orm中的事务操作
orm字段和参数 charfield varchar integerfield int bigintegerfield bigint emailfield varchar(254) datefield ...
- vue之新手使用
vue中文网站:https://cn.vuejs.org/v2/guide/installation.html 包含了安装.使用.api.视频. 一. 什么是 Vue Vue 是一个前端框架,特点是 ...
- 《Java知识应用》Java读写DBF文件
1. 准备: Jar包下载:链接: https://pan.baidu.com/s/1Ikxx-vkw5vSDf9SBUQHBCw 提取码: 7h58 复制这段内容后打开百度网盘手机App,操作更方便 ...
- Wonder暂停开发,开始写书
公告 大家好,我们决定暂时停止开发Wonder,但会继续维护当前的Wonder版本(如继续维护官网.在线编辑器.QQ群等). 我们当前的主要任务是 写书:基于Wonder 1.0版本的开发经验,写一本 ...