Frage

Ich bin mit dieser erstaunlichen JQuery Glanzzeit von Addy Osmani. Es funktioniert völlig in Ordnung, da alles, was ich tat, war kopiert und eingefügt es: D

aber dann muss ich den Glanz-Effekt automatisch animieren regelmäßig, sobald das Bild geladen, ohne zuerst schwebte zu haben, wie kann ich das erreichen? zu sein ich fast Null Kenntnisse ehrlich, wenn es um jquery kommt und oder Javascript

Hier ist der Code:

<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>

Bitte helfen Sie mir, Dank

Viele Grüße

War es hilfreich?

Lösung

 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);

Versuchen Sie das mal, oder wenn Sie es anpassen möchten, ändern Sie den Code, wo ich all die $('thumb_container' gestellt haben):)

Andere Tipps

Wenn Sie den Code, den Sie Trigger in einem .hover Ereignis Helfer wollen, können Sie dieses Ereignis ausgelöst wird, um die .hover() Funktion aufrufen, ohne irgendwelche Parameter übergeben.

Zur Klarstellung: Wenn Sie das Hover-Ereignis auf #largephoto simulieren mögen, einfach diese nennen:

$("#largephoto").hover();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top