使用JS制作图片轮播切换的具体代码是什么
Admin 2022-08-09 群英技术资讯 669 次浏览
这篇文章主要介绍“使用JS制作图片轮播切换的具体代码是什么”,有一些人在使用JS制作图片轮播切换的具体代码是什么的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。本文实例为大家分享了javascript实现图片轮播切换效果的具体代码,供大家参考,具体内容如下
效果如下:

代码部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{margin:0;padding:0;}
#banner{position:relative;width:400px;height:200px;margin:50px auto;overflow: hidden;}
#banner .box{width:400px;height:200px;overflow: hidden;}
#banner .box li img{width:400px;height:200px;overflow: hidden;}
#banner .box li{display:none;}
#banner .box li.active{display:block;}
#banner .static{position:absolute;bottom:0;height:30px;width:390px;padding-right:10px;text-align:right;}
#banner .static span{display:inline-block;width:20px;height:20px;margin:0 2px;line-height:20px;text-align:center;background:#fff;cursor:default;}
#banner .static span.active{background:blue;color:#fff;}
#banner .btn{position:absolute;top:80px;height:40px;width:20px;color:#fff;line-height:40px;text-align:center;background:#000;opacity:.75;cursor:default;}
#banner .next.btn{right:0;}
</style>
</head>
<body>
<div id="banner">
<div class="box">
<ul>
<li class="active">
<a href="#">
<img src="img/banner.jpg"/>
</a>
</li>
<li>
<a href="#">
<img src="img/banner01.jpg"/>
</a>
</li>
<li class="">
<a href="#">
<img src="img/banner02.jpg"/>
</a>
</li>
<li>
<a href="#">
<img src="img/banner03.jpg"/>
</a>
</li>
</ul>
</div>
<div class="static">
<span class="active">1</span>
<span>2</span>
<span>3</span>
<span>4</span>
</div>
<div class="prev btn"><</div>
<div class="next btn">></div>
</div>
<script>
//切换样式
function toggleClass(elem, classStr){
if(elem.className){
if(elem.className.indexOf(classStr) > -1){
elem.className = elem.className.replace(classStr,"");
}else{
elem.className = elem.className + " " + classStr;
}
}else{
elem.className = classStr;
}
}
//获取元素所在兄弟元素的索引
function getIndex(elem){
var index;
var childNodes = elem.parentNode.childNodes;
//获取子元素的元素节点
function childElem(){
var result = [];
for(var i = 0, len = childNodes.length; i < len; i++){
if(childNodes[i].nodeType == 1){
result.push(childNodes[i]);
}
}
return result;
}
//判断元素与子元素是否相等
var child = childElem(elem);
for(var j = 0, lenj = child.length; j < len; j++){
if(child[j] == elem){
index = j;
}else{
console.error("没有找到相应的子元素!");
}
}
//返回索引
return index;
}
//dom选择器
function $(selector){
return document.querySelector(selector);
}
function $$(selector){
return document.querySelectorAll(selector);
}
//对象参数
var int = {
num: null,
speed: null,
timerId: null
};
var liItem = $$("#banner .box li");
var static = $$("#banner .static span");
var btn = $$("#banner .btn");
//初始化默认值
var activeNum = 1;
int.num = liItem.length;
int.speed = 3000;
//切换动作
function toggleItem(num){
toggleClass($("#banner .box li.active"), "active");
toggleClass($("#banner .static span.active"), "active");
//添加下一个激活选项
toggleClass(liItem.item(num), "active");
toggleClass(static.item(num), "active");
}
function autoPlay(){
int.timerId = setInterval(function(){
if(activeNum < int.num){
toggleItem(activeNum);
activeNum++;
}else{
activeNum = 0;
toggleItem(activeNum);
activeNum++;
}
},int.speed);
}
//定时轮播
autoPlay();
//状态点鼠标移入移出效果
for(var i = 0, len = static.length; i < len; i++){
//匿名传参避免产生闭包得不到想要的效果
(function(j){
//鼠标移入效果
static.item(j).onmouseenter = function(){
//停止动画
clearInterval(int.timerId);
var index = getIndex(this);
toggleItem(index);
}
//鼠标移出效果
static.item(j).onmouseleave = function(){
//开始动画
autoPlay();
}
})(i);
}
for(var k = 0, lenk = btn.length; k < lenk; k++){
//上下张按钮移入移出效果
btn.item(k).onmouseenter = function(){
clearInterval(int.timerId);
}
btn.item(k).onmouseleave = function(){
autoPlay();
}
}
//单价击上一张
$(".prev.btn").onclick = function(){
if(activeNum > 0){
activeNum--;
toggleItem(activeNum);
}else{
activeNum = 3;
toggleItem(activeNum);
}
}
//单击下一张
$(".next.btn").onclick = function(){
if(activeNum < int.num){
toggleItem(activeNum);
activeNum++;
}else{
activeNum = 0;
toggleItem(activeNum);
activeNum++;
}
}
</script>
</body>
</html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
React传递参数的方式有哪些?对于React传递参数,有父子组件之间传递参数和路由传参,那么具体怎样实现呢?下面小编给大家分享几个实例,有需要的朋友可以参考。
这篇文章主要给大家分享Promise使用方法,下文有详细的介绍Promise是什么、Promise的基本用法等等,对大家学习和理解Promise都有一定的帮助,感兴趣的朋友可以了解看看,接下来我们一起来学习一下吧。
这篇文章主要介绍了React setState数据更新机制的相关资料,帮助大家更好的理解和学习使用React框架,感兴趣的朋友可以了解下
目录:访问视图Post请求Post请求-body(1)Post请求-body(2)Post登陆1Post登陆2页面访问控制1页面访问控制2访问视图前面我们已经添加了视图模板并学习了访问视图的方法,那我们就先回顾一下。1.参考以下代码,地址栏访问这几个请求路径查看是否可以成功。app.get('/',function(req,res){res.ren
在本篇文章里小编给大家整理的是一篇关于js事件委托详解以及相关实例内容,有兴趣的朋友们可以跟着学习下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008