【发布时间】:2019-10-27 12:01:36
【问题描述】:
尽我所能用简单的js构建自己的轮播/幻灯片。
- 尝试删除当前
view div上的active 类,然后在下一个/上一个上添加active 类。但不知何故,它现在在接下来的两个 div 或 prev div 上,为什么? - 如何循环播放幻灯片? (我的意思是在#1 div 上,点击prev,转到#3 div)
- 我还想在下面添加一些控件点,如何使其与自动播放和点击控件相关?
谢谢!
$(document).ready(function(){
$('.next').on('click', function(){
$('.slider-inner > div.active').removeClass('active').css('z-index', -10);
$('.slider-inner > div').next().addClass('active').css('z-index', 10);
});
$('.prev').on('click', function(){
$('.slider-inner > div.active').removeClass('active').css('z-index', -10);
$('.slider-inner > div').prev().addClass('active').css('z-index', 10);
});
setInterval(function() {
$('.slider-inner > div:first')
/*Set fadeout time here. Unite is millisecond.*/
.fadeOut(1000)
.next()
/*Set fadein time here. Unite is millisecond.*/
.fadeIn(1000)
.end()
.appendTo('.slider-inner');
/*Set the fixed frame duration here. Unite is millisecond.*/
}, 3000);
});
.slider-outer{
width:230px;
margin:40px auto;
overflow:auto;
}
.slider-inner{
width:200px;
height:200px;
position:relative;
overflow:hidden;
float:left;
padding:3px;
background:#333;
color:#fff;
}
.slider-inner > div{
display:none;
width:200px;
height:200px;
}
.slider-inner .active{
display:inline-block;
}
.prev,.next{
float:left;
margin-left:50px;
cursor: pointer;
}
.carousel-dot > div{
float: left;
width: 30px;
height: 8px;
background-color: #D8D8D8;
margin-right: 30px;
margin-top: 50px;
}
.carousel-dot .active{
background-color: #FF6600;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="slider-outer">
<div class="slider-inner">
<div id="item" class="active"><p>#1</p></div>
<div id="item" ><p>#2</p></div>
<div id="item" ><p>#3</p></div>
</div>
<div class="carousel-controls">
<a class="prev" >prev</a>
<a class="next" >next</a>
</div>
<div class="carousel-dot">
<div class="active"></div>
<div></div>
<div></div>
</div>
</div>
【问题讨论】:
标签: javascript jquery