冰貂主人
首页
网络安全
dedecms
会员
漏洞
织梦
技术文章
数据库
其他
微信小程序
区别
python
服务器
PHP
谈天说地
优惠券
新闻
手册
thinkphp5手册
laravel8手册
thinkphp6
前端
首页
前端
正文
js首页轮播
未知
2020-12-08 09:58:36
0
次
问题描述:
实现如下图的轮播效果。
解决办法:
<style type="text/css">
/*标题样式*/
.app {
width: 100%;
text-align: center;
}
.app .scroll {
position: relative;
display: inline-block;
height: 460px;
width: 100%;
}
.app .scroll .img {
display: none;
width: 100%;
height: 460px;
}
.app .scroll .current {
display: block;
}
.app .scroll .lf {
position: absolute;
top: 50%;
left: 10px;
background-image: url('images/arrow.png');
background-position: -83px 0;
width: 41px;
height: 69px;
cursor: pointer;
transform: translateY(-50%);
}
.app .scroll .lr {
position: absolute;
top: 50%;
right: 10px;
background-image: url('images/arrow.png');
background-position: -123px 0;
width: 41px;
height: 69px;
cursor: pointer;
transform: translateY(-50%);
}
.app .dots {
margin-top: -33px;
z-index: 999;
position: relative;
}
.app .dots>span {
display: inline-block;
box-sizing: border-box;
width: 11px;
height: 11px;
border: 3px solid red;
border-radius: 15px;
cursor: pointer;
}
.app .dots>span:not(:last-child) {
margin-right: 5px;
}
/* 小圆点的颜色 */
.app .dots .square {
background: #f46;
}
</style>
<div class="container-fluid">
<div class="app">
<div class="scroll">
<!-- 图片展示 -->
<img src="images/banner1.jpg" alt="scrollImage" class="img current">
<img src="images/banner1.jpg" alt="scrollImage" class="img">
<img src="images/banner.jpg" alt="scrollImage" class="img">
<img src="images/banner1.jpg" alt="scrollImage" class="img">
<img src="images/banner.jpg" alt="scrollImage" class="img">
<!-- 左右箭头的展示 -->
<div class="lf"></div>
<div class="lr"></div>
<!-- 小圆点展示 -->
<div class="dots">
<span class="square"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
</div>
</div>
</div>
<script type="text/javascript">
window.addEventListener('load', function() {
var leftArrow = this.document.querySelector('.lf');
var rightArrow = this.document.querySelector('.lr');
// 鼠标移动到左右箭头的位置更换图片 有灰色背景的图片
leftArrow.addEventListener('mouseenter', function() {
this.style.backgroundPosition = '0 0';
});
leftArrow.addEventListener('mouseleave', function() {
this.style.backgroundPosition = '-83px 0';
});
rightArrow.addEventListener('mouseenter', function() {
this.style.backgroundPosition = '-42px 0';
});
rightArrow.addEventListener('mouseleave', function() {
this.style.backgroundPosition = '-123px 0';
});
// 获取图片 和 小点
var imgs = this.document.querySelectorAll('.img');
var dots = this.document.querySelector('.dots').querySelectorAll('span');
// 给图片设置index 属性,好判断当前的图片是哪一张
for (let i = 0; i < imgs.length; i++) {
imgs[i].setAttribute('data-index', i);
}
// 获取当前图片 和 图片的index(数组下标)
var current = this.document.querySelector('.current');
var currentIndex = current.getAttribute('data-index');
// 左箭头的点击事件,点击了就返回前一张图片
// 如果当前图片为第一张那么需要更换到最后一张图片也就是第四张
leftArrow.addEventListener('click', function() {
if (currentIndex > 0) {
imgs[currentIndex].classList.remove('current');
dots[currentIndex].classList.remove('square');
imgs[--currentIndex].classList.add('current');
dots[currentIndex].classList.add('square');
} else {
imgs[currentIndex].classList.remove('current');
dots[currentIndex].classList.remove('square');
currentIndex = 4;
imgs[currentIndex].classList.add('current');
dots[currentIndex].classList.add('square');
}
});
// 点击右箭头下一张图片切换
// 如果当前为第五张图片,那么切换回第一张图片
rightArrow.addEventListener('click', changeImage);
var timer = this.setInterval(changeImage, 8000);
function changeImage() {
if (currentIndex < 4) {
imgs[currentIndex].classList.remove('current');
dots[currentIndex].classList.remove('square');
imgs[++currentIndex].classList.add('current');
dots[currentIndex].classList.add('square');
} else {
imgs[currentIndex].classList.remove('current');
dots[currentIndex].classList.remove('square');
currentIndex = 0;
imgs[currentIndex].classList.add('current');
dots[currentIndex].classList.add('square');
}
};
// 小圆点的点击事件
for (let k = 0; k < dots.length; k++) {
dots[k].setAttribute('data-index', k);
dots[k].addEventListener('click', function() {
var index = this.getAttribute('data-index');
if (index != currentIndex) {
imgs[currentIndex].classList.remove('current');
dots[currentIndex].classList.remove('square');
imgs[index].classList.add('current');
dots[index].classList.add('square');
currentIndex = index;
}
})
}
});
</script>
首页
轮播
问题
描述
实现
如
下图
的
上一篇:
js实现图片自动轮播
下一篇:
html中IE对display:none无效,隐藏不了。
相关内容
XXX技术解析
本文详细解析了XXX技术的定义、特点、应用及发展趋势。该技术具有高...
2025-02-13 01:23:39
有影院靠《哪吒2》7天赚了...
《哪吒2》上映七天创下影院高收益奇迹,吸引观众热议和业界高度评价。...
2025-02-10 06:46:40
小米汽车:经查完全不存在网...
小米汽车回应SU7“断轴”传闻,经查完全不存在。官方迅速澄清,强调...
2025-02-10 06:23:39
国产剧终于有不靠男主救的女...
国产剧新趋势:女主角不再依赖男主救援,展现独立与坚强。打破传统模式...
2025-02-10 05:46:37
网络木马攻击中的隐藏技术及...
本文详述了网络木马攻击中的伪装、加密、进程注入与隐藏等技术手段及其...
2025-02-10 04:23:42
网络木马攻击中的钓鱼欺诈手...
本文详述了网络木马攻击中的钓鱼欺诈手段,包括邮件钓鱼、社交工程钓鱼...
2025-02-10 03:46:41
热门资讯
淘宝优惠券
淘宝优惠券先领券后下单,更加省钱
万话由心AI创作网
创作、对话、视频、绘画、音乐集一身的创作平台
唯品会优惠券
唯品会优惠券先领券后下单,更加省钱
拼多多优惠券
拼多多优惠券先领券后下单,更加省钱
layui tooltip提示...
在layui表单中,我们想把一个标签做出提示,以标明这个表单元素是做什么有什么功能时,就可以用上提...
vsCode npm命令无法加...
layui中出错Unexpec...
layui中出错Unexpected identifier
JavaScript获取当前协...
JavaScript获取当前协议,域名,路径
解决Phpcms V9手机门户...
第一步:开启手机网站。位置:模块 》手机门户 》 添加手机站点,如果模块里面没有手机门户,那么就在模...
bootstrap 图片文字居...
问题描述: 让图片和文字居中显示。 解决办法: !-- style--.navbars img{ m...
如何在html中禁止复制文字
问题描述: 如何禁止别人复制自己的文章? 解决办法: 在body标签中添加以下代码: onconte...
JS实现html打印功能,打印...
!DOCTYPE htmlhtmlhead meta charset=utf-8 title打印功能...
bootstrap图片排版布局
问题描述: 在使用bootstrap的时候,出现了这样的问题。 排版对不齐。 解决办法: 通过上图发...
手机端底部定位
问题描述: 需要实现的效果 解决办法: !-- 底部 -- div class=layui-row ...