2010-12-01 33 views
0

je suis en utilisant ce étonnant Jquery shine time par Addy Osmani. Cela fonctionne parfaitement bien puisque tout ce que j'ai fait a été copié et collé: Deffet de brillance jquery, animer sans hover comme un déclencheur

mais j'ai besoin de l'effet de brillance pour animer automatiquement périodiquement dès que l'image se charge sans avoir à être survolée en premier, comment puis-je y parvenir? pour être honnête, j'ai presque nulle connaissance en matière de jquery et ou javascript

est le code ici:

<script type="text/javascript"> 
$(document).ready(function(){ 
    /*Your ShineTime Welcome Image*/ 
    var default_image = 'images/large/default.jpg'; 
    var default_caption = 'Welcome to ShineTime'; 

    /*Load The Default Image*/ 
    loadPhoto(default_image, default_caption); 


    function loadPhoto($url, $caption){ 
     /*Image pre-loader*/ 
     showPreloader(); 
     var img = new Image(); 
     jQuery(img).load(function(){ 
      jQuery(img).hide(); 
      hidePreloader(); 
     }).attr({ "src": $url }); 

     $('#largephoto').css('background-image','url("' + $url + '")'); 
     $('#largephoto').data('caption', $caption); 
    } 

    /* When a thumbnail is clicked*/ 
    $('.thumb_container').click(function(){ 
     var handler = $(this).find('.large_image'); 
     var newsrc = handler.attr('src'); 
     var newcaption = handler.attr('rel'); 
     loadPhoto(newsrc, newcaption); 
    }); 

    /*When the main photo is hovered over*/ 
    $('#largephoto').hover(function(){ 

     var currentCaption = ($(this).data('caption')); 
     var largeCaption = $(this).find('#largecaption'); 

     largeCaption.stop(); 
     largeCaption.css('opacity','0.9'); 
     largeCaption.find('.captionContent').html(currentCaption); 
     largeCaption.fadeIn() 



     largeCaption.find('.captionShine').stop(); 
     largeCaption.find('.captionShine').css("background-position","-550px 0"); 
     largeCaption.find('.captionShine').animate({backgroundPosition: '550px 0'},700); 
    }, 
    function(){ 
     var largeCaption = $(this).find('#largecaption'); 
     largeCaption.find('.captionContent').html(''); 
     largeCaption.fadeOut(); 
    }); 

    /* When a thumbnail is hovered over*/ 
    $('.thumb_container').hover(function(){ 
     $(this).find(".large_thumb").stop().animate({marginLeft:-7, marginTop:-7},200); 
     $(this).find(".large_thumb_shine").stop(); 
     $(this).find(".large_thumb_shine").css("background-position","-99px 0"); 
     $(this).find(".large_thumb_shine").animate({backgroundPosition: '99px 0'},700); 

    }, 
    function(){ 
     $(this).find(".large_thumb").stop().animate({marginLeft:0, marginTop:0},200); 
    }); 

    function showPreloader(){ 
     $('#loader').css('background-image','url("images/interface/loader.gif")'); 
    } 

    function hidePreloader(){ 
     $('#loader').css('background-image','url("")'); 
    } 
}); 
</script> 

S'il vous plaît aidez-moi, merci

Cordialement

+0

voulez-vous l'animer au démarrage ou périodiquement? – benhowdle89

+0

périodiquement, probablement intervalle de 3 secondes – littlechad

+0

ok, vérifiez ma réponse – benhowdle89

Répondre

2
setInterval(function() { 
     $('.thumb_container').find(".large_thumb").stop().animate({marginLeft:-7, marginTop:-7},200); 
     $('.thumb_container').find(".large_thumb_shine").stop(); 
     $('.thumb_container').find(".large_thumb_shine").css("background-position","-99px 0"); 
     $('.thumb_container').find(".large_thumb_shine").animate({backgroundPosition: '99px 0'},700); 
    }, 3000); 

essayer, ou si vous voulez personnaliser, modifier le code où je mettre tous les $('thumb_container') :)

+0

merci l'homme, au fait , devrais-je simplement supprimer la fonction .hover(), puisque je ne pense pas que j'ai besoin de cela, puis-je? – littlechad

+0

hey man, devinez quoi, ça marche !! merci encore – littlechad

+0

Je ne supprimerais pas encore quelque chose, mais une fois que vous avez le bon code dans mon code, alors vous pouvez le supprimer! Je suppose que, comme vous avez copié et collé le code d'un article de blog, si cela se passe des seins alors vous pouvez tout remettre :) – benhowdle89

1

Si vous avez le code vous souhaitez déclencher dans un assistant d'événement .hover, vous pouvez déclencher cet événement en appelant la fonction .hover() sans passer de paramètres.

Pour clarifier: Si vous souhaitez simuler l'événement de vol plané sur #largephoto, appelez simplement ceci:

$("#largephoto").hover(); 
+0

en fait je le veux animer sans avoir à planer, je veux dire dès que l'image de charge, l '«effet de brillance» a commencé à animer périodiquement – littlechad