gpt4 book ai didi

javascript - 我怎样才能让我的 javascript slider 工作?

转载 作者:行者123 更新时间:2023-12-01 00:25:17 24 4
gpt4 key购买 nike

我今天开始面向对象编程。我试图重新制作我用意大利面条代码制作的东西,但我无法让它工作。

class slider{
constructor(){
this.slide = ["images/slide1.jpg", "images/slide2.jpg", "images/slide3.jpg", ];
this.next = document.getElementById('next');
this.previous = document.getElementById('previous');
this.bouttonSlider = this.next.onclick = function (){
this.i = 0;
document.getElementById("slide").src = this.slide[++this.i];
if (i >= 2){
i=0;
}
}
}
};


这是我的 html

<!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>
</head>
<body>
<div id="slider" style="width: 75%; margin-left: auto; margin-right: auto;">
<img src="images/slide1.jpg" style="width: 100%;" id="greee">
</div>
<button id="previous">previous</button>
<button id="next">next</button>
<script src="script.js"></script>
</body>
</html>

最佳答案

您的上述代码片段存在一些问题,但您的方向是正确的。

  1. 正如 @VolodymyrI.I 指出的,您没有在任何地方实例化对象。如果没有它,你的 JS 代码只是一个定义,但永远不会被执行。通过调用new slider创建一个对象定义之外的某个地方。就在下面就可以了。

  2. 现在你的构造函数运行了,但是你将会遇到错误。原因之一是 JS 如何处理 this取决于上下文。简而言之,您想要 this指向您的对象以访问类似 this.slide 的属性。而不是将您的 onclick 定义为 function () {/**/} ,将其定义为 ()=>{/**/}this现在将指向对象,而不是函数上下文。

  3. 我看到你想使用this.i作为当前显示的图像的索引。安onclick每次单击按钮时都会运行 - 每次,索引都会设置为 0。您可能希望它位于 onclick 之外.

  4. 镜像ID为greee,document.getElementById("slide").src = this.slide[++this.i];不会起作用。

  5. 看看索引 0 处的图片是否按照您的逻辑显示。

如果您遇到困难,请参阅下面的代码片段。请注意,它的索引也有一个小错误。索引很困难!

class slider{
constructor(){
this.slide = [
"https://i.imgur.com/EdDe8GHg.jpg",
"https://i.imgur.com/bOlGI3ig.jpg",
"https://i.imgur.com/TQaR2c4g.jpg"];
this.next = document.getElementById('next');
this.previous = document.getElementById('previous');
this.index = 0;
this.next.onclick = () => {
if (this.index >= 3){
this.index=0;
}
document.getElementById("greee").src = this.slide[this.index];
this.index++;
}
}
};


new slider();
<!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>
</head>
<body>
<div id="slider" style="width: 75%; margin-left: auto; margin-right: auto;">
<img src="https://i.imgur.com/EdDe8GHg.jpg" style="width: 100%;" id="greee">
</div>
<button id="previous">previous</button>
<button id="next">next</button>
<script src="script.js"></script>
</body>
</html>

关于javascript - 我怎样才能让我的 javascript slider 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59067403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com