javascript - 如何在 javascript 中每 3 秒一张一张地更改图像( slider )?

标签 javascript html css

<分区>


这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助 future 的读者。

关闭 5 年前

<!DOCTYPE html>

<html>

<head>

<title>Hello</title>

<meta http-equiv="Content-Type" type="text/html" charset="UTF-8"/>

<style>

*{margin:0; padding:0;}

.mySlides{
          position:relative;
		  width:1000px;
		  margin:40px auto;
		  display:table;
		 }
		 
.number{
        position:absolute;
		margin:20px;
	   }
	   
.text{
      position:absolute;
	  bottom:20px;
	  text-align:center;
	  width:100%;
	 }
	 
.prev, .next{
             position:absolute;
			 top:40%;
			 background-color:black;
			 color:white;
			 padding:20px;
			 cursor:pointer;
			 user-select:none;
	        }
			
.next{
      right:0;
	 }

.text-align{
            text-align:center;
		   }
	 
.dot{
     width:30px;
	 height:30px;
	 background-color:gray;
	 display:inline-block;
	}
	
.dot.active, .dot:hover{
                        background-color:orange;
					   }

</style>

</head>

<body>

<div class="mySlides">
<div class="number">1/4</div>
<img src="images/slide1.jpg" width="100%"/>
<div class="text">Text 1</div>
</div>

<div class="mySlides">
<div class="number">2/4</div>
<img src="images/slide2.jpg" width="100%"/>
<div class="text">Text 2</div>
</div>

<div class="mySlides">
<div class="number">3/4</div>
<img src="images/slide3.jpg" width="100%"/>
<div class="text">Text 3</div>
</div>

<div class="mySlides">
<div class="number">4/4</div>
<img src="images/slide4.jpg" width="100%"/>
<div class="text">Text 4</div>
</div>

<a class="prev" onclick="plusSlides(-1)">&#10094;</a>

<a class="next" onclick="plusSlides(1)">&#10095;</a>

<div class="text-align">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
<span class="dot" onclick="currentSlide(4)"></span>
</div>

<script>
var slideIndex=1;
showSlides(slideIndex);

function plusSlides(n){

showSlides(slideIndex+=n);

}

function currentSlide(n){

showSlides(slideIndex=n);

}

function showSlides(n){

var i;

var slides=document.getElementsByClassName("mySlides");

var dots=document.getElementsByClassName("dot");

if(n>slides.length){slideIndex=1;}

if(n<1){slideIndex=slides.length;}

for(i=0; i<slides.length; i++){

slides[i].style.display="none";

}

for(i=0; i<dots.length; i++){

dots[i].className=dots[i].className.replace("active", "");

}

slides[slideIndex-1].style.display="block";

dots[slideIndex-1].className+=" active";

}
</script>

</body>

</html>

如何在 javascript 中每 3 秒一张一张地更改图像( slider )?

我知道我必须使用 setTimeout(showSlides, 3000);我必须实现哪些额外的代码?

当我使用 slideIndex++ 时;和 setTimeout(showSlides, 3000);图像/ slider 每 3 秒更改一次,但是当我单击 slider 按钮时,我发现与带有 slider 按钮的 slider /图像不匹配。如何将 slider 按钮与那些图像/ slider 相匹配?

最佳答案

你最好使用Owl Carousel

自编码 slider 不用于商业开发

但是如果我们继续这样做,那么 here is the working example

我在下面添加了 4 行:

var timer = setInterval(function(){
    slideIndex++;
    showSlides(slideIndex);
},3000);

可以用,看不到任何问题

我了解您的需求了吗?

关于javascript - 如何在 javascript 中每 3 秒一张一张地更改图像( slider )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375384/

上一篇:jquery - 在点击菜单栏上更改 Font Awesome 图标

下一篇:jquery - <tr> block 内的 DIV

相关文章:

javascript - rails/Rspec/ capybara : Interpreting quotes for javascript string for execute script

javascript - 我的数据列表搜索表单不起作用

html - 背景颜色消失

html - 如何摆脱 Bootstrap Navbar 周围的空白区域?

javascript - 使用 jquery 从 div 中拆分文本

html - 将 CSS 应用于特定元素

javascript - 设置不带参数的 Content-Type

javascript - 根据具有变换属性的另一个路径协调插入 svg 路径

css - 当最后一个图像或 div 从浏览器顶部到达指定点时如何锁定或修复滚动?

html - CSS 样式。在链接前放一个箭头图像