11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,

[EDIT] J'utilise JQuery

Je fais des recherches sur le net, mais impossible d'arriver à faire ce que je veux, et pourtant, y'a des réponses un peu partout.

J'ai un script, qui pour le moment fait en sorte d'afficher une div pendant 3 secondes à l'arrivée sur le site, puis disparaît.

C'est déjà pas mal, mais je voudrai faire en sorte que ladite div ne disparaisse pas après un délai défini, mais qu'elle disparaisse une fois que la page est entièrement chargée.

Pour le moment, j'ai ça (qui marche mais qui n'est pas exactement ce que je veux):


            setTimeout(function() {
          $('#loading')
            .removeClass('loading')
            .addClass('loaded');
        }, 3000);


et j'ai essayé ça (qui ne donne rien) :

            $(window).load(function() {
                $('#loading')
                .removeClass('loading')
                .addClass('loaded');
            })


Voilà voilà,

Merci d'avance !
Modifié par CKVTDN (19 May 2017 - 14:55)
Bonjour
essaye avec ça


// quand la page est entièrement chargée 

$(document).ready(function() {
     $("#loading").remove();
} );

Modifié par JohnNes (19 May 2017 - 15:40)
[EDIT] En fouillant un peu, j'ai vu qu'y'avait une différence à connaître entre ready et load (ou onload), j'ai donc testé en remplaçant ready par load ou onload, qui, selon ce que j'ai lu, devrait mieux convenir à ce que je cherche à faire, mais je n'obtiens qu'une roue qui tourne indéfiniment.

Bonjour JohnNes,

Merci de ta réponse !

J'ai appliqué ton morceau de code, ça a l'air de fonctionner, en tout cas la div de chargement s'affiche un court instant puis laisse apparaître le site.

Ce qui est bizarre en revanche, c'est que les éléments de la page ne sont pas pour autant chargés une fois que le site apparaît. En effet, certaines images sont encore en train de s'afficher.

Du coup c'est pas optimal. Une idée ?

Merci encore pour ta réponse en tout cas !
Modifié par CKVTDN (19 May 2017 - 16:42)
Bonjour,

Effectivement, pour ton cas, j'utiliserais plus le $(window).load() que le $(document).ready() car l'event se lance quand tout est chargé.
Pour test, si tu colles un alert() dans le load(), tu vois la fenêtre apparaître ?
Bonjour à tous les deux, désolé, j'ai du désactiver les notifs sans le vouloir, du coup, j'ai pas vu vos réponses plus tôt.

@JohnNes pour un aperçu, tu veux un screen ou un lien ?

@SolidSnake je test ça asap et j'te dis.

En tout cas merci à tous les deux.