0
我正在更新公司主页上的滑块。原来的滑块有点老,动画不是很流畅,尤其是当用户从第一张幻灯片到最后一张时,或者相反。使用jquery的动画滑块/ javascript
我有滑块工作得很好,但似乎不能让任何动画工作。我对动画没有太多的工作,所以任何帮助都会很棒。该公司希望动画能够从右向左滑动。
var slideData = [
{
title : "Title Slide 1",
timeout : 7,
layout : "slider-left",
description : "Caption Slide 1",
type : "image",
img : "/images/banners/img1.jpg",
url : "/url1"
},
{
title : "Title Slide 2",
timeout : 7,
layout : "slider-left",
description : "Caption Slide 2",
type : "image",
img : "/images/banners/img2.jpg",
url : "/url2"
},
{
title : "Title Slide 3",
timeout : 7,
layout : "slider-left",
description : "Caption Slide 3",
type : "image",
img : "/images/banners/img3.jpg",
url : "/url3"
}];
var fSlider = (function(slideData, containerID){
var slides = [], slides_Data = [];
var container = null; // Sliding container
var main = null; // Main container - holds sliding container
var currentSlide = 0; // Current position in slide
var offset = 770; // X offset of container
var timer = 0; // Timer to auto-advance next slide.
var width=768; // Width of each slide
var endSlide = false;
//===============================
// initialize
// builds and starts slider
//===============================
function init(){
slides_Data = slideData;
container = $(containerID);
main = $("#main-slider");
buildSlides();
buildControls();
slides = document.getElementsByClassName("slider");
setTimeOut();
}
//===============================
// Increment and show next slide
//===============================
function slideNext(){
var i;
cancelTimeOut();
//slideout();
if(currentSlide >= slides.length-1){
currentSlide = 0;
//endSlide = true;
}else {
currentSlide++;
}
for(i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[currentSlide].style.display = "block";
//setPositions(offset);
setTimeOut();
}
//===============================
// Decrement and show previous slide
//===============================
function slidePrevious(){
var i;
cancelTimeOut();
if(currentSlide <= 0){
currentSlide = slides.length-1;
endSlide = true;
}else {
currentSlide--;
}
for(i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
slides[currentSlide].style.display = "block";
//setPositions(offset);
setTimeOut();
}
//===============================
// Update sliding container offset
//===============================
function setPositions(offset){
$("html.cssanimations " + containerID).css("transform" , "translateX(" + (-offset) + "px)");
$("html.cssanimations " + containerID).css("-webkit-transform" , "translateX(" + (-offset) + "px)");
$("html.cssanimations " + containerID).css("-moz-transform" , "translateX(" + (-offset) + "px)");
$("html.cssanimations " + containerID).css("-ms-transform" , "translateX(" + (-offset) + "px)");
$("html.cssanimations " + containerID).css("-o-transform" , "translateX(" + (-offset) + "px)");
$("html.no-cssanimations " + containerID).animate({left: -offset}, 350);
}
//===============================
// Set timer for next slide
//===============================
function setTimeOut(){
timer=setTimeout(slideNext, slides_Data[currentSlide].timeout * 1000);
}
//===============================
// Clear timer
//===============================
function cancelTimeOut(){
clearTimeout(timer);
}
//===============================
// Use Slide Data to create html/css for slides
//===============================
function buildSlides(){
var sliderDiv = document.getElementById("slider-mask");
for(var i = 0; i < slides_Data.length; i++) {
sliderDiv.innerHTML = sliderDiv.innerHTML + '<div class="slider ' + slides_Data[i].layout + '"' +
'style="background-image: url(' + slides_Data[i].img + ');">' +
'<div><h3><a href="' + slides_Data[i].url + '">' + slides_Data[i].title + '</a></h3>' +
'<p>' + slides_Data[i].description + '</p></div></div>';
}
sliderDiv.innerHTML = sliderDiv.innerHTML + '<a id="btn-next" href="#">▸</a>' +
'<a id="btn-previous" href="#">◂</a>';
}
//===============================
// Create and attach event listeners
// to button/navigation controls
//===============================
function buildControls(){
var nextButton = document.getElementById("btn-next");
var previousButton = document.getElementById("btn-previous");
nextButton.addEventListener('click', slideNext);
previousButton.addEventListener('click', slidePrevious);
}
// Public
return {init:init};
}(slideData, '#slider-mask'));
这是我使用已经从原来的滑块代码修改的代码,并且动画将要使用setPositions()函数来设定。就像我说的那样,滑块工作得很好,我无法正确地获得动画。
你可以给一个代码尖晶石的例子吗?包括HTML – Ishey4