25 nov
Par Clément dans Tutoriels

Cette idée m’est venu quand je suis tombé sur le site de Hitomi Studio, une agence de création de site e-commerce sur Magento. Comme vous pouvez le voir quand vous parcourez le contenu, à une certaine position de la barre de défilement, un élément HTML apparait pour vous ramener vers le haut de la page.
Les sources étant compressées et vu qu’ils utilisent Mootools, je me suis demandé si c’était simple de le refaire avec jQuery.
$(function(){
// Ajout de l'élément HTML en le cachant (au départ)
$('
').appendTo('body').css({opacity: 0});
$(window).scroll(function(){ // On ajoute une fonction quand on défile dans le site
// On récupère la position de la barre de défilement par rapport à notre fenêtre
var scrollTop = $(window).scrollTop();
// On ajoute une fonction au clique de notre élément.
$('#scrolltotop a').click(function(){
// On lance l'animation pour retourner en haut de la page
$('html,body').stop().animate({scrollTop: 0}, 'slow');
});
// On récupère notre élément
var div = $('#scrolltotop');
if(scrollTop >= 300){ // Si on dépassé les 300 pixels
if(div.css('opacity') == 0){ // et si la div est cachée
div.stop().animate({opacity: 1}, 500); // On affiche l'élément
}
}else{
// Sinon, on cache la div si celle ci est visible.
if(div.css('opacity') > 0){
div.stop().animate({opacity: 0}, 500);
}
}
});
// On lance l'évènement scroll un première fois au chargement de la page
$(window).scroll();
});
Avec cette méthode, vous pouvez donc laisse la possibilité à l’utilisateur de retourner en haut de votre site sans utiliser la molette de sa souris et cela d’une manière très fluide et agréable !
« Le résultat du concours pour les invitations Google Wave | Concours – Un méga bundle de Noël offert par Weecast »
Aucun trackback
15 commentaires
Guillaume
25 novembre 2009 à 22:18
1Salut Clément.
Très intéressant comme article mais apparemment cela ne fonctionne pas sur Chrome dernière version à jour
Nicolargo
26 novembre 2009 à 10:09
2En tout cas cela marche sous Chromium (4.0.257.0 (Ubuntu build 32926))…
Merci le hack je vais essayer de l’implémenter sur mon blog !
Julien
26 novembre 2009 à 12:05
3Vraiment fort ce Dator
C’est parfait !
Clément
26 novembre 2009 à 12:09
4@Guillaume: J’ai ajouté du contenu, cela ne devais pas marcher si tu étais sur un trop grand écran (chez moi c’est 1280X800)
@Nicolargo @Julien: Merci
Guillaume
26 novembre 2009 à 16:04
5C’est bon, ça fonctionne
Hervé
27 novembre 2009 à 18:00
6Si tu veux, sur le même principe, il existe un petit plugin jQuery pour faire cela qui est très simple et qui plus est, skinnable !
http://www.mathieuartu.net/jqueryup/
Jack NUMBER
29 novembre 2009 à 22:07
7pas mal !!
mzid ça ne fonctionne pas avec IE6.
hdmi
2 décembre 2009 à 12:50
8si si ça marche sur Chrome.
thomtom
9 décembre 2009 à 14:56
9Ce script ne fonctionne pas sur IE6, il en existe un equivalent et compatible tous navigateurs.
http://www.dynamicdrive.com/dynamicindex3/scrolltop.htm
Bonne journée.
ben
17 décembre 2009 à 20:56
10Je mettrais un petit display:none; pour ne pas avoir un curseur « doigt» sur un div invisible… si jquery a une function chain c’est facile ?
toupil
28 janvier 2010 à 9:52
11Très intéressant comme article! Merci
Xavier
28 janvier 2010 à 11:06
12Salut Dator,
Apparemment ce bout de code ne passe pas le W3C.
J’ai tenté plusieurs tests sans succès, le script fonctionne impeccable mais la validation ne passe pas, snif.
Gilles
25 juin 2010 à 10:42
13Salut.
Moi je n’ai rien vu, ni avec Chrome, ni avec FF. (dernières versions bien sûr)
Déçu…
hdmi
1 septembre 2010 à 19:49
14Astuce très sympa jevais essayer de l´implanter sur mon site.
Julien Vernet
6 novembre 2010 à 13:43
15Dommage que l’exemple ne fonctionne pas avec la version 3.6.12 de Firefox ! J’utilise pour ma part un plugin jQuery similaire à jQueryUP.
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogoliste
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress