【发布时间】:2017-10-11 19:09:02
【问题描述】:
我在 jQuery 中创建了一个简单的图像滑块,滑动效果很好我正在尝试做两件事:
我想使用
transform:translate3d而不是margin-left(滑动时),所以它具有平滑度第三张幻灯片完成后,第一张幻灯片没有滑动动画(出现急动)
有人可以给我一些想法吗?
'use strict';
$(document).ready(function() {
var winw = $(window).width();
var winh = $(window).height();
// variables
var width = $(window).width();
var timeFrame = 4000;
var pause = 8000;
var currentSlide = 1;
// cache dom
var $slider = $('#slider');
var $slideContainer = $('.slides', $slider);
var $slides = $('.slide', $slider);
var interval;
// functions
function startSlider() {
interval = setInterval(function() {
//translate3d(x, y, z)
$slideContainer.animate({
'margin-left': '-=' + width
}, timeFrame, function() {
if (++currentSlide === $slides.length) {
currentSlide = 1;
$slideContainer.css('margin-left', 0);
}
});
}, pause);
}
function pauseSlider() {
clearInterval(interval);
}
// call functions
//$slideContainer.on('mouseenter', pauseSlider).on('mouseleave', startSlider);
startSlider();
$("#slider .slide").height(winh);
$("#slider .slide").width(winw);
});
html,
body {
margin: 0;
padding: 0;
font-family: 'Open Sans';
background: #eee;
overflow: hidden;
}
#slider {
width: 100%;
height: 100%;
overflow: hidden;
}
#slider .slides {
display: block;
width: 10000px;
margin: 0;
padding: 0;
}
#slider .slide {
float: left;
list-style-type: none;
width: 1050px;
}
.slide1 {
background: url(imgs/slide-image-1.jpg) no-repeat center;
}
.slide2 {
background: url(imgs/slide-image-2.jpg)no-repeat center;
}
.slide3 {
background: url(imgs/slide-image-3.jpg)no-repeat center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="slider">
<ul class="slides">
<li class="slide slide1"></li>
<li class="slide slide2"></li>
<li class="slide slide3"></li>
</ul>
</div>
【问题讨论】:
标签: javascript jquery html css slider