你好,我正在努力为一个我正在制作的网站做一个滑块。我已经做了一个“开关”来改变内容,但没有任何动画。我希望它看起来像本网站上的滑块。我已经做的工作是在本网站上完成的。
JS中的变量"content“来自HTML中的元标记(而不是这个标记)。在本例中,它被设置为5。
我的HTML代码如下所示:
<div class="slider">
<div id="slider-object" class="slider-1 active">
<div class="content">
<h3>Hejsa 1</h3>
<a href="#">Shop</a>
</div>
<div class="slider-img">
<img src="http://placehold.it/400x400" alt="pic">
</div>
</div>
<div id="slider-object" class="slider-2">
<div class="content">
<h3>Hejsa 2</h3>
<a href="#">Shop</a>
</div>
<div class="slider-img">
<img src="http://placehold.it/400x400" alt="pic">
</div>
</div>
<div id="slider-object" class="slider-3">
<div class="content">
<h3>Hejsa 3</h3>
<a href="#">Shop</a>
</div>
<div class="slider-img">
<img src="http://placehold.it/400x400" alt="pic">
</div>
</div>
<div id="slider-object" class="slider-4">
<div class="content">
<h3>Hejsa 4</h3>
<a href="#">Shop</a>
</div>
<div class="slider-img">
<img src="http://placehold.it/400x400" alt="pic">
</div>
</div>
<div id="slider-object" class="slider-5">
<div class="content">
<h3>Hejsa 5</h3>
<a href="#">Shop</a>
</div>
<div class="slider-img">
<img src="http://placehold.it/400x400" alt="pic">
</div>
</div>
<button class="next" type="button">Next</button>
<button class="previous" type="button">Previous</button>
</div>我的JS代码如下所示
$(document).ready(function() {
var element = document.querySelector('meta[property="slider-count"]');
var content = element && element.getAttribute("data");
for (var i = 1; i <= content; i++) {
if ($(".slider-"+i).hasClass("active") === false) {
$(".slider-"+i).hide();
} else {
var currentSlide = i;
}
}
$(".next").click(function() {
$(".slider-"+currentSlide).hide();
var nextSlide = currentSlide+1;
if (nextSlide > content) {
currentSlide = 1;
} else {
currentSlide = nextSlide;
}
$(".slider-"+currentSlide).show();
});
$(".previous").click(function() {
$(".slider-"+currentSlide).hide();
var nextSlide = currentSlide-1;
if (nextSlide < 1) {
currentSlide = content;
} else {
currentSlide = nextSlide;
}
$(".slider-"+currentSlide).show();
});
});发布于 2016-03-05 23:26:50
因此,你提到的网站是一个很好的例子,它使用了一个完全不同的方法:它没有显示和隐藏面板,它只是“将它们移出视线之外”。我进行了一些测试,并可以复制相同的行为:
我改变了,嗯,几乎所有的事情:
.show()和.hide()行为。。
.slider {
display: inline-block;
white-space: nowrap;
width: 400px;
overflow: hidden;
padding: 0;
margin: 0;
}
.slider-object {
display: inline-block;
}margin-left-value of the first .slider-object的动画增减。。
$('.slider .slider-object:first-of-type').animate({
marginLeft: (currentSlide - 1) * (step * -1) + 'px'
});.slider-object计算$('.slider-object').length;来消除对元标记的需求。#slider-object更改为.slider-object,因为您不应该对文档中多次出现的对象使用in。content重命名为totalSlides。作为一个很好的例子,您提到的网站使用了一种不同的方法来完成所有这一切,使用transform: translate3d(); ,它更好地和更干净,但更复杂,我现在看到只有当我完成这篇文章。因此,欢迎大家使用transform: translate3d(); :)复制它。)
https://stackoverflow.com/questions/35817906
复制相似问题