作业
来源:5-2 自由编程
卷毛奋斗中
2022-08-05 10:43:46
//css /* css reset */ * { padding: 0; margin: 0; } a { text-decoration: none; outline: none; } img { vertical-align: top; } /* layout */ .slider-layout { width: 80%; height: 420px; margin: 0 auto; } /* slider */ .slider, .slider-content, .slider-item, .slider-img { width: 100%; height: 100%; } .slider { overflow: hidden; } .slider-item { float: left; } .slider-animation { transition-property: transform; transition-duration: 0ms; } .slider-layout { position: relative; } .slider-layout p { display: block; position: absolute; top: 50%; margin-top: -20px; width: 40px; height: 40px; line-height: 40px; border-radius: 50%; font-size: 20px; color: rgb(220, 33, 33); text-align: center; background-color: rgba(255, 255, 255, .5); cursor: pointer; user-select: none; } .slider-layout p.left { left: 0; } .slider-layout p.right { right: 0; } //slider <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Class 的应用</title> <link rel="stylesheet" href="./slider.css" /> </head> <body> <div class="slider-layout"> <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> <p class="left"><</p> <p class="right">></p> </div> <script src="./base.js"></script> <script> // console.log(BaseSlider); class Slider extends BaseSlider { constructor(el, options) { super(el, options); this._bindEvent(); } _bindEvent() { document.addEventListener('keyup', ev => { // console.log(ev.keyCode); if (ev.keyCode === 37) { // ← this.prev(); } else if (ev.keyCode === 39) { // → this.next(); } }); } } new Slider(document.querySelector('.slider'), { initialIndex: 1, animation: true, speed: 1000 }); //继承基类 class Btn extends BaseSlider { constructor(el, options) { super(el, options); //获取元素 this.leftBtn = document.querySelector('p.left'); this.rightBtn = document.querySelector('p.right'); this.slider = document.querySelector('slider-layout'); //调用方法 this._bindEvent(); this._move(); } //切换图片 _bindEvent() { this.leftBtn.onclick = () => { this.prev(); } this.rightBtn.onclick = () => { this.next(); } } //移入移出事件 _move() { this.slider.onmouseenter = () => { this.leftBtn.style.display = 'block'; this.rightBtn.style.display = 'block'; } this.slider.onmouseleave = () => { this.leftBtn.style.display = 'none'; this.rightBtn.style.display = 'none'; } } } //实例化按钮类 new Btn(document.querySelector('.slider'), { initialIndex: 1, animation: true, speed: 2000 }) </script> </body> </html>
1回答
同学你好,代码有如下问题:
1、Btn类中,slider没法正确获取到。修改如下:
2、左右箭头,初始应该隐藏,建议添加如下样式:
祝学习愉快!