请老师检查代码
来源:5-2 自由编程
听的说
2022-01-20 18:13:00
问题描述:
应该是这个效果了,老师帮忙检查一下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="slider.css">
</head>
<body>
<style>
.prev,
.next {
position: absolute;
width: 50px;
height: 50px;
line-height: 50px;
text-align: center;
border-radius: 50%;
background-color: orange;
top: 50%;
margin-top: -25px;
z-index: 1;
opacity: 0;
cursor: pointer;
}
.slider-layout:hover .prev,
.slider-layout:hover .next {
opacity: 1;
}
.prev {
left: 10px;
}
.next {
right: 10px;
}
</style>
<div class="slider-layout">
<div class="prev">⬅️</div>
<div class="next">➡️</div>
<div class="slider">
<div class="slider-content">
<div class="slider-item">
<a href="javascript:;"><img src="./imgs/1.jpg" alt="1" class="slider-img" /></a>
</div>
<div class="slider-item">
<a href="javascript:;"><img src="./imgs/2.jpg" alt="1" class="slider-img" /></a>
</div>
<div class="slider-item">
<a href="javascript:;"><img src="./imgs/3.jpg" alt="1" class="slider-img" /></a>
</div>
<div class="slider-item">
<a href="javascript:;"><img src="./imgs/4.jpg" alt="1" class="slider-img" /></a>
</div>
</div>
</div>
</div>
<script src="base.js"></script>
<script>
class Slider extends BaseSlider {
constructor(el, option, position) {
super(el, option);
this._clickBtn(position);
}
_clickBtn(position) {
position[0].addEventListener('click', () => {
this.prev();
}, false);
position[1].addEventListener('click', () => {
this.next();
}, false);
}
}
new Slider(document.querySelector('.slider'), {
initialIndex: 1,
animation: true,
speed: 2000
}, [document.querySelector('.prev'), document.querySelector('.next')]);
</script>
</body>
</html>
</html>1回答
同学你好,整体思路是可以的,不过由于按钮绝对定位参考窗口进行定位,老师这边测试,鼠标移入图片区域,按钮在图片区域外显示,效果不美观,如下:

建议优化:给外层盒子添加相对定位,调整按钮的位置,让其在图片区域内显示。

另外,代码中存在其他可以优化的,如下:
1、左右箭头可以直接使用< > 实现,效果会更美观
2、删掉多余的代码

祝学习愉快