2010-01-04 1 views
0

Я использую это простое слайд-шоу и задаюсь вопросом, знал ли кто-нибудь, как сделать паузу, когда я надвигаю его на мышь, а затем начинаю заново, если я вытащу мышь с изображения?Javascript - Prototype/Scriptaculous Pause на MouseOver

Существует демо слайд-шоу здесь: http://script.aculo.us/stuff/simplest_slideshow/

Это основной код:

<script> 
setInterval(function(){ 
    var imgs = $$('.fadein img'), 
    visible = imgs.findAll(function(img){ return img.visible(); }); 
    if(visible.length>1) visible.last().fade({ duration: 1 }); 
    else imgs.last().appear({ duration: 1, 
     afterFinish: function(){ imgs.slice(0,imgs.length-1).invoke('show'); } }); 
}, 2000); 
</script> 

Спасибо!

+3

Has StackOverflow стал местом, где люди создают возможности программного обеспечения для других людей, бесплатно? –

+0

Привяжите интервал к переменной, очистите интервал на мыши, боб, ваш дядя, три ура Люку, который ударил ноготь по голове –

ответ

0

Разобрался ответ:

<ul class="fadein" onmouseover="stop_slideshow()" onmouseout="start_slideshow()"> 
     <li><a href="http://google.com"><img src='{{skin url="images/slider.jpg"}}' alt="" /></a></li> 
     <li><a href="http://example.com"><img src='{{skin url="images/slider1.jpg"}}' alt="" /></a></li> 
</ul> 

<script type="text/javascript"> 
var duration = 4000; 
var showNextImage = true; 
     function stop_slideshow() { 
      showNextImage = false; 
     } 
     function start_slideshow() { 
      showNextImage = true; 
     } 
setInterval(function(){ 
    if(!showNextImage){ return; } 
    var imgs = $$('.fadein img'), visible = imgs.findAll(function(img){ return img.visible(); }); 
    if(visible.length > 1) { 
     visible.last().fade({ duration: 1 }); 
    } else { 
     imgs.last().appear({ duration: 1, afterFinish: function(){ imgs.slice(0,imgs.length-1).invoke('show'); } }); 
    } 
}, duration); 
</script>