2014-12-17 3 views
-6

내가 뭘 하려는지 간단히 DIV의 배경 이미지를 x 시간 간격으로 전환하는 것입니다.전환 이미지

index = (index + 1) % length 

... length이의 길이 :

// Object of Background images per make 
var bs = { 
    "time": 2000, 
     "url": { 
     "BMW": ["url('img/cars/bmw/1.jpg')", "url('img/cars/bmw/.jpg')", "url('img/cars/bmw/3.jpg')"], 
      "Audi": ["url('img/cars/audi/1.jpg')", "url('img/cars/audi/2.jpg')", "url('img/cars/audi/3.jpg')"], 
      "GMC": ["url('img/cars/gmc/1.jpg')", "url('img/cars/gmc/2.jpg')", "url('img/cars/gmc/3.jpg')"] 
    } 
    //ect... 
}; 
var Slider = $("#Slider"); // DIV element 
function Slide(car) { 
    var sLength = bs.url[car].length; // array # of pictures available 
    Slider.css({ 
     "background": bs.url[car][index], // ?? here how do you auto increment & restart cycle 
     "background-position": "center", 
      "background-attachment": "fixed", 
      "background-size": "cover" 
    }); 
    setInterval() // here call Slide & ++ index ? 
} 
$(document).ready(function() { 
    Slide("BMW"); 
}); 
+2

보내기 ', 증분 및'car'와'index'와 setTimeout''전화 :

그래서 Slide 기능이 라인을 따라 뭔가를 할 수 있습니다. – putvande

+1

길이에 도달하면 재설정하십시오. – Panther

+0

질문에 세부 사항을 추가하십시오. 자동차와 무슨 상관 관계가 있니? 또한 코드를 정리할 때 http://jsbeautifier.org/와 같은 것을 사용하십시오. 현재 들여 쓰기가 일관성없고 혼란 스럽습니다. – rjmunro

답변

0

나머지 연산자는 주위에 당신의 index 같은 것들을 포장 정말 유용

내가 지금 무엇을 가지고 인덱싱 대상 (0 기반 인덱싱을 가정). 함수에 함수와 index`

function Slide(car) { 
    var urls = bs.url[car]; 
    var index = 0; 

    function run() { 
     Slider.css({ 
      "background": urls[index], 
      "background-position": "center", 
      "background-attachment" : "fixed", 
      "background-size" : "cover" 
     }); 
     index = (index + 1) % urls.length; 
    }  

    run(); 
    setInterval(run, bs.time); 
} 
+0

슬라이드를 변경할 때 제거 할 수 있도록'setInterval' 값을 저장해야한다는 것을 기억하십시오. 그렇지 않다면 많은 콜백을 낭비 할 것입니다. – fcortes

+0

@fcortes : 메모리는 문제가 아니지만 예, 반복 타이머를 중지해야하는 경우 핸들이 필요합니다. :-) –

+0

@ T.J 답장을 보내 주셔서 감사합니다. 기본적으로 index = (index + 1) % urls.length; 증가를 배열의 #pics로 제한합니다. % 목적은 무엇입니까? 의미가 작거나 같습니까? <=를 사용할 수 없습니까? – Awena