保持课堂活跃,直到最后一节课开始活动
Keep class active untill last class inside is active
我有一个幻灯片,需要点击才能转到下一个图像/视频。然而,我想让它自动,所以它不需要任何用户活动。
页面如下所示:
<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的"演示"。每次单击next按钮时,下一个li将变得活跃。当它激活时,你只会看到
我想要什么:
使第一篇文章处于活动状态(如代码所示)。然后我想要例如自动使幻灯片1激活。10秒后,我想要幻灯片2激活。30秒后,我想让幻灯片3激活。
到达末尾时(本例中为幻灯片3)。我想让它转到下一篇文章,并在x时间后激活这些幻灯片。
我一直在寻找这个很长时间了。然而,我只能让Li元素在x秒后激活。但我想决定我能让每个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>
我为你写了一些东西
function autoSpin(){
var slideShow = $("#mySlideshowOutdiv"); //set this yourself
var slides = $(slideShow).find("li");
var activeSlide = $(slideShow).find("li.active")
var timer = 5000; //5 seconds
setTimeout(function({
nextSlide();
}, timer)
function nextSlide() {
if($(activeslide).nextAll().length == 0) { //If you're at the last "li"
setActive($(slides).eq(0))
} else { // Else just use the next slide in line
setActive($(activeSlide).next("li"));
}
}
function setActive(slide){
$(slideShow).find(".active").removeClass("active");
$(slide).addClass("active");
}
}
相关文章:
- HTML5自动滚动到下一节
- 我只上一节课,而不是两节课
- 如何在 javascript 中获取指定时区的一天的开始时间和结束时间(以 UTC 为单位)
- jQuery mMenu如何通过单击某些元素返回到上一节
- 给定特定日期(日/月/年)返回一周的开始 + 结束
- Socket.io 快递 3 节课
- 整页.js:如何自动添加下一节或上一节的名称
- Javascript手风琴一节打开
- 取消当前触摸事件,直到下一次触摸开始
- 整页js幻灯片下一节超过当前
- Angular:下一节显示在上一节隐藏之前-使用ng显示
- 滚动到下一节
- 当一天的开始和结束时间改变时,删除/添加正确的
's - js自动循环通过幻灯片无法前进到下一节
- jQuery:点击滚动到下一节
- 保持课堂活跃,直到最后一节课开始活动
- 只有最后一节课分配给这个班
- 检查它是否是最后一节fullPage.js
- jQuery如何分辨"this"有一节课
- 如何防止加载页面有一节课