老师检查一下代码
来源:5-2 自由编程
3颗猫饼干
2021-12-20 11:26:45
相关代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>5-2: 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 class="left-btn" id="leftbtn"> <div class="left-arrow"></div> </div> <!-- 右按钮 --> <div class="right-btn" id="rightbtn"> <div class="right-arrow"></div> </div> </div> </div> <script src="./base.js"></script> <script> // 通过querySelect方法,获取左右按钮和大盒子元素。 const slider = document.querySelector('.slider'); const leftbtn = document.getElementById('leftbtn'); const rightbtn = document.getElementById('rightbtn'); // 通过class的extends方式继承基类BaseSlider。 class Slider extends BaseSlider { constructor(el, options) { super(el, options) console.log(this); this.leftEvent() this.rightEvent() } // 左按钮点击事件函数 leftEvent() { leftbtn.addEventListener( 'click', () => { console.log(this); this.prev(); } ) } // 右按钮点击事件 rightEvent() { rightbtn.addEventListener( 'click', () => { // console.log('next'); this.next() } ) } } // 鼠标移入事件 slider.addEventListener( 'mouseenter', function () { // console.log('yiru'); leftbtn.style.display = 'block' rightbtn.style.display = 'block' } ) // 鼠标移出事件 slider.addEventListener( 'mouseleave', function () { // console.log('yichu'); leftbtn.style.display = 'none' rightbtn.style.display = 'none' } ) new Slider(document.querySelector('.slider'), { // 初始索引 initialIndex: 2, // 切换时是否有动画 animation: true, // 切换速度,单位 ms speed: 2000 }) // // 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, //false 就是没有动画 // speed: 1000 // }); </script> </body> </html>
相关代码:
/* css reset */ * { padding: 0; margin: 0; } a { text-decoration: none; outline: none; } img { vertical-align: top; } /* layout */ .slider-layout { width: 80%; height: 420px; margin: 0px auto; position: relative; box-sizing: border-box; } /* slider */ .slider, .slider-content, .slider-item, .slider-img { width: 100%; height: 100%; } .slider { overflow: hidden; position: relative; } /* 左按钮 */ .slider .left-btn { width: 50px; height: 50px; background-color: rgb(206, 204, 204); position: absolute; left: 5px; top: 50%; margin-top: -25px; border-radius: 50%; cursor: pointer; display: none; } .slider .left-btn .left-arrow { width: 20px; height: 20px; border-top: solid rgb(3, 3, 3); border-left: solid rgb(3, 3, 3); position: absolute; top: 50%; margin-top: -10px; left: 18px; transform: rotate(-45deg); } /* 右按钮 */ .slider-layout .right-btn { width: 50px; height: 50px; background-color: rgb(206, 204, 204); position: absolute; right: 5px; top: 50%; margin-top: -25px; border-radius: 50%; cursor: pointer; display: none; } .slider .right-btn .right-arrow { width: 20px; height: 20px; border-top: solid rgb(3, 3, 3); border-right: solid rgb(3, 3, 3); /* border: solid rebeccapurple; */ position: absolute; top: 50%; margin-top: -10px; left: 9px; transform: rotate(45deg); } .slider-item { float: left; } .slider-animation { transition-property: transform; transition-duration: 0ms; }
1回答
好帮手慕慕子
2021-12-20
同学你好,代码效果实现是对,继续加油,祝学习愉快~
相似问题