我有一个幻灯片,需要单击以转到下一个图像/视频。
但是,我想自动进行此操作,因此它不需要任何用户活动。

该页面如下所示:

<article class="active">
    <li class="active"> Slide 1 </li>
    <li> Slide 2 </li>
    <li> Slide 3 </li>
    <li> Slide 3 </li>
</article>

<article>
    <li> Slide 1 </li>
    <li> Slide 2 </li>
    <li> Slide 3 </li>
    <li> Slide 3 </li>
</article>

<article>
    <li> Slide 1 </li>
    <li> Slide 2 </li>
    <li> Slide 3 </li>
    <li> Slide 3 </li>
</article>


当文章处于活动状态时,您将获得其中的li的“演示”。每次您单击“下一步”按钮时,下一个锂电池将变为活动状态。启用后,您只会看到它。

我想拥有的是:

使第一篇文章处于活动状态(如代码中所示)。
然后,我想例如自动激活幻灯片1。 10秒后,我希望激活幻灯片2。 30秒后,我希望幻灯片3处于活动状态。

到达终点时(在这种情况下为幻灯片3)。我希望它转到下一篇文章,并在经过x倍的时间后激活那些幻灯片。

我已经搜索了很长时间了。但是,我只能在经过x秒钟的时间后才能激活Li元素。但是我想决定我可以使每个Li元素活跃多长时间。这是因为某些幻灯片具有正在播放的电影。有些只是图片。

最佳答案

通过使用纯JavaScript进行加粗操作,使完全可工作成为可能:



<script>

var interval = setInterval(function(){
	console.log(1);
	var active = document.getElementsByClassName("active");
	var parent = active[0].parentNode.parentNode.childNodes;

	var foundClass = false;
	var nextSlide = false;

	for(var j=0; j<parent.length; j++){
		var childs = parent[j].childNodes;

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

			if(childs[i].nodeType==1 && foundClass){
				childs[i].className = "active";
				nextSlide = true;
				break;
			}

			if(childs[i].nodeType==1){
				if(childs[i].getAttribute("class")=="active"){
					childs[i].className = "";
					foundClass = true;
				}
			}
		}

		if(nextSlide){
			break;
		}
	}

	if(!nextSlide){
		clearInterval(interval);
	}

}, 1000);

</script>
<style>
.active { font-weight: bold; }
</style>

<article id="initShow">
    <li class="active"> Slide 1 </li>
    <li> Slide 2 </li>
    <li> Slide 3 </li>
    <li> Slide 4 </li>
</article>

<article>
    <li> Slide 5 </li>
    <li> Slide 6 </li>
    <li> Slide 7 </li>
    <li> Slide 8 </li>
</article>

<article>
    <li> Slide 9 </li>
    <li> Slide 10 </li>
    <li> Slide 11 </li>
    <li> Slide 12 </li>
</article>

08-17 08:15