Choix des lecteurs
Articles populaires
Vous avez bien sûr vu un lien « vers le haut » sur des pages avec beaucoup de texte tout en bas. Ou prenez, par exemple, le contenu (à condition que l'intégralité du document soit sur une seule longue page). La signification est à peu près la même. Cliquez sur le lien et vous serez redirigé vers un endroit précis du document. En fait, nous rembobinons le défilement par programme.
La mise en œuvre de cela à l’aide d’une ancre est un jeu d’enfant. Mais que se passe-t-il si je ne veux pas arriver instantanément au point souhaité, mais plutôt « rembobiner » le parchemin ?
Testé dans :
Implémentez le rembobinage du défilement logiciel.
SolutionNous utiliserons le plugin jQuery.ScrollTo spécialement développé pour cela. Il peut faire beaucoup de choses. Par exemple, il peut rembobiner à la fois le défilement principal d'une fenêtre et le défilement de certains fichiers . Peut revenir en arrière jusqu'à une position spécifique (en pixels ou en pourcentages) ou jusqu'à un élément spécifique (spécifié, par exemple, par ). Tout cela a déjà été créé, notre tâche est d'apprendre à l'utiliser.
Que télécharger ?Connexion des bibliothèques :
Nous écrivons l'identifiant de quelqu'un en HTML - nous rembobinons la fenêtre jusqu'à cet élément :
Rubrique importante
Réglez le bouton de commande :
Revenir au titre important
Lorsque vous cliquez sur le bouton, nous activons le rembobinage :
jQuery(document).ready(function())( jQuery("button").click(function() ( jQuery.scrollTo("#target-el"); )); ));
Et maintenant plus en détailLa commande jQuery.scrollTo() rembobinera le défilement principal. Si vous devez rembobiner le défilement d'un élément, utilisez une notation comme jQuery("selector").scrollTo(), par exemple :
JQuery("div.pane").scrollTo("#target-el");
Paramètres de scrollTo()Eh bien, comme d'habitude, toute la magie est dans les paramètres :
L'axe qui défilera est "x", "y", "xy" ou "yx". "xy" est la valeur par défaut |
Durée de l'animation. |
Le nom de l’équation est assouplissement. |
Si c'est vrai, les limites cibles et la marge sont soustraites. |
Chilso ou hachage (gauche : x, haut : y ). Cette valeur sera ajoutée à la position finale (peut être négative) |
Ajoutez une partie de la hauteur/largeur de l'élément (peut également être négative). |
Si c'est vrai et que les deux axes peuvent défiler, alors le défilement sur un axe est animé d'abord, puis sur l'autre. L'ordre est déterminé par l'axe paravitr ("xy" ou "yx") |
Si queue=true, la fonction sera exécutée après avoir fait défiler le premier axe. |
Une fonction appelée une fois l'animation entière terminée. |
Lors de l'appel de scrollTo(), trois types de paramètres sont transmis : cible, durée, paramètres (l'ordre compte).
Comme objectif, vous pouvez utiliser :
Exemples d'appels avec paramètres.
Comment tout a commencéCode HTML des boutons :
En haut
Vers le bas
Styles CSS :
#en haut
{
largeur : 60 px ;
hauteur : 60 px ;
position : fixe ;
bas : 50 px ;
gauche : 20 px ;
couleur d'arrière-plan : #000000 ;
rayon de bordure : 30 px ;
}
#vers le bas
{
largeur : 60 px ;
hauteur : 60 px ;
position : fixe ;
bas : 50 px ;
gauche : 90 px ;
couleur d'arrière-plan : #000000 ;
rayon de bordure : 30 px ;
}
.pPageScroll
{
couleur :#FFFFFF ;
police : gras 12 pt « Comic Sans MS » ;
texte-align:centre;
}
En conséquence, nous avons deux cercles avec les inscriptions « Up » et « Down » dans le coin inférieur gauche du navigateur.
Les problèmes commencent Maintenant, le plaisir commence - JavaScript, ou plutôt jQuery. Comme vous le savez, pour organiser le défilement, des manipulations sont effectuées sur les propriétés scrollTop et scrollLeft. Dans jQuery, ces manipulations sont effectuées respectivement à l'aide des méthodes .scrollTop() et .scrollLeft(). Nous ne nous intéressons qu’au .scrollTop.//Gestion du clic sur le bouton "Up"
$("#up").click(function())(
//Vous devez faire défiler vers le haut de la page
$("body").animate(("scrollTop":0),"lent");
});
//Gestion d'un clic sur le bouton "Down"
$("#down").click(function())(
//Vous devez faire défiler vers le bas de la page
var hauteur=$("corps").hauteur();
$("body").animate(("scrollTop":height),"slow");
});
Tout est très simple et sans prétention. Mais, pas de chance, si dans Chrom tout était assez clair et agréable, dans Opera c'était aussi tout à fait tolérable (le défilement vers le haut s'effectuait instantanément), alors le « Harmful Fox » a complètement refusé de faire défiler. Sans hésiter, en remplaçant la ligne : $("body").animate "body" par "html", j'ai radicalement changé la situation : FireFox a commencé à fonctionner, Opera a arrêté de défiler vers le haut par saccades et a commencé à le faire en douceur, mais maintenant Chrome a cessé de répondre à la manipulation des boutons. Des épreuves ci-dessus, l'option suivante a suivi, digestible par tous les navigateurs : $("html,body").animate... Aucune autre méthode de défilement acceptable qui fonctionne dans tous les navigateurs n'a été trouvée.
Ajoutons quelques volants et nœuds. Nous avons réglé la partie la plus simple. La fonctionnalité de base a été atteinte, vous pouvez maintenant proposer quelque chose de plus intéressant. La première chose qui attire l’attention est la vitesse de défilement. En présence de tout type de contenu riche, l'utilisation du défilement devient un véritable test de tendance à l'épilepsie. Par conséquent, j'aimerais que le défilement soit plus fluide. La solution est simple, définissez une certaine constante de temps pendant laquelle le défilement doit avoir lieu. Un avantage évident : la simplicité de la solution. Un inconvénient tout aussi évident : le volume du contenu n’est pas pris en compte. Une solution intelligente : calculer le temps d'exécution du défilement en fonction de la taille du contenu. Commençons.$(document).ready(function())(
//Gestion du clic sur le bouton "Up"
$("#up").click(function())(
//Vous devez faire défiler vers le haut de la page
var scrollTime=curPos/1.73;
$("body,html").animate(("scrollTop":0),scrollTime);
});
//Gestion d'un clic sur le bouton "Down"
$("#down").click(function())(
//Vous devez faire défiler vers le bas de la page
var curPos=$(document).scrollTop();
var hauteur=$("corps").hauteur();
var scrollTime=(hauteur-curPos)/1.73;
$("body,html").animate(("scrollTop":height),scrollTime);
});
});
De plus, vous pouvez ajouter des coefficients par lesquels le temps ou la vitesse seraient multipliés en fonction du chemin pour offrir plus de flexibilité, mais je ne m'attarderai pas là-dessus.
Résumé En conséquence, nous avons obtenu une implémentation très simple du défilement des pages qui fonctionne dans n'importe quel navigateur moderne.UPD : Le dernier exemple a été corrigé.
Bonjour les amis. Dans cet article, nous examinerons l'événement jQuery lorsque la page défile jusqu'à un élément spécifique. En d'autres termes, alors... Dans cet exemple, nous déclencherons un événement lorsque la page défilera jusqu'au pied de page. Ensuite, nous afficherons une petite fenêtre pop-up avec une apparence fluide. Et nous le fermerons également en cliquant. Décidez vous-même quoi y mettre, il existe de nombreuses options. Voici à quoi cela ressemble :
Commençons par le balisage HTML et il n'y a rien d'inhabituel ici. Tout est assez simple et clair. Un grand canevas de texte, un pied de page en bas et un bloc avec un bouton qui apparaîtra. Voici le code du bloc :
1 2 3 4 5 6 7 8 9 10 | Il y a beaucoup de contenu ici... Du texte. Bas de page |
Il y a beaucoup de contenu ici... Du texte. Bas de page
Commençons maintenant à concevoir notre bloc caché et son bouton :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #block ( affichage : aucun ; position : fixe ; haut : 15px ; droite : 15px ; couleur : #fff ; arrière-plan : #4CAF50 ; remplissage : 10px ; border-radius : 5px ; width : 200px ; box-shadow : 0 13px 20px -5px #3a3a3a ; font-family : Arial ; text-align : center ; ) .btn( background : #FF9800 ; border : 2px solid #795548 ; color : #fff ; border-radius : 5px ; curseur : pointeur ; padding : 5px 10px ; margin-top : 10px ; font-weight : gras ; ) |
#block (affichage : aucun ; position : fixe ; haut : 15 px ; droite : 15 px ; couleur : #fff ; arrière-plan : # 4CAF50 ; remplissage : 10 px ; rayon de bordure : 5 px ; largeur : 200 px ; ombre de la boîte : 0 13 px 20 px -5px #3a3a3a ; famille de polices : Arial ; alignement du texte : centre ; ) .btn( arrière-plan : #FF9800 ; bordure : 2px solide #795548 ; couleur : #fff ; rayon de bordure : 5px ; curseur : pointeur ; remplissage : 5px 10px ; marge supérieure : 10 px ; poids de la police : gras ; )
Parlons maintenant directement de ce qu'on appelle le défilement vers l'élément. Pourtant, l’anglais est nécessaire pour un développeur. Nous connectons jQuery en standard. Je le ferai via CDN car ce sera la version la plus à jour.
Et puis le code du script lui-même, qui va créer de la magie sur la page :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $(document).ready (function () ( var $element = $(".footer" ) ; let counter = 0 ; $(window).scroll (function () ( var scroll = $(window).scrollTop () + $(window) .height () ; //Si faites défiler jusqu'à la fin de l'élément //var offset = $element.offset().top + $element.height(); //Si faites défiler jusqu'au début de l'élément element var offset = $element .offset () .top if (scroll > offset && counter == 0 ) ( $("#block" ) .fadeIn (500 ) ; counter = 1 ; ) ) ; $(".btn" ) .click (function () ( $("#block" ) .slideUp () ; ) ) ; ) ) ; |
$(document).ready(function())( var $element = $(".footer"); laissez compteur = 0; $(window).scroll(function() ( var scroll = $(window).scrollTop( ) + $(window).height(); //Si faites défiler jusqu'à la fin de l'élément //var offset = $element.offset().top + $element.height(); //Si faites défiler jusqu'au début de l'élément var offset = $element .offset().top if (scroll > offset && counter == 0) ( $("#block").fadeIn(500); counter = 1; ) )); $(". btn").click(function ()( $("#block").slideUp(); )); ));
Par défaut, l'événement est déclenché dès que le début de l'élément, en l'occurrence le pied de page, apparaît dans la zone de visibilité, mais vous pouvez modifier la valeur en décommentant la ligne 7 et ensuite la fonction se déclenchera lorsque le défilement arrivera à la fin. de l'élément.
Il s'agit d'un moyen intelligent de montrer aux visiteurs de votre site votre offre unique et, en ajoutant des objectifs à la métrique, de suivre sa conversion.
Récemment, les types de sites appelés Landing Pages sont devenus très populaires. Ils sont pratiques car l'utilisateur reçoit toutes les informations nécessaires sur une seule page. Le plus souvent, il s'agit d'informations sur le produit, qui le décrivent sous toutes ses coutures, permettent de comprendre ses atouts et ses avantages et, bien sûr, de passer commande.
Ces sites s'avèrent assez longs, donc pour faciliter la navigation, ils créent souvent un menu de navigation avec des liens vers des sections spécifiques. Apprenons comment nous assurer que lorsque vous cliquez sur un lien, le site défile en douceur jusqu'à l'emplacement souhaité.
$("a" ) .click (function () ( var elementClick = $(this) .attr ("href" ) ; var destination = $(elementClick) .offset () .top ; $("html, body" ) .animate (( scrollTop: destination ) , 600 ) ; return false ; ) ) ; Vue alternativeAuparavant, nous procédions un peu différemment - nous utilisions la définition du navigateur - $.browser.safari || $.browser.webkit et selon la condition, $("body").animate() ou $("html").animate() . Depuis la version 1.9, jQuery - $.browser a été supprimé et ne fonctionnera donc pas. Mais vous pouvez modifier le code et obtenir le script suivant :
var correspond, navigateur ; jQuery.uaMatch = function ( ua ) ( ua = ua.toLowerCase () ; var match = /(chrome)[ \/]([\w.]+)/ .exec ( ua ) || /(webkit)[ \ /]([\w.]+)/ .exec ( ua ) || /(opera)(?:.*version|)[ \/]([\w.]+)/ .exec ( ua ) || /(msie)[\s?]([\w.]+)/ .exec ( ua ) || /(trident)(?:.*? rv:([\w.]+)|)/ .exec ( ua ) || ua.indexOf ("compatible")< 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/ .exec ( ua ) || ; return { browser: match[ 1 ] || "" , version: match[ 2 ] || "0" } ; } ; matched = jQuery.uaMatch ( navigator.userAgent ) ; //IE 11+ fix (Trident) matched.browser = matched.browser == "trident" ? "msie" : matched.browser ; browser = { } ; if ( matched.browser ) { browser[ matched.browser ] = true ; browser.version = matched.version ; } $("a" ) .click (function () { var elementClick = $(this ) .attr ("href" ) ; var destination = $(elementClick) .offset () .top ; if (browser.chrome || browser.webkit ) { $("body" ) .animate ({ scrollTop: destination } , 600 ) ; } else { $("html" ) .animate ({ scrollTop: destination } , 600 ) ; } return false ; } ) ;C'est tout. Bonne chance à tous!
Il a depuis longtemps pris racine parmi les développeurs.
Donc. A l'aide des plugins présentés dans cette collection, vous pouvez créer un site internet moderne avec une excellente dynamique. Je pense que toute personne intéressée par le développement de sites Web a vu ces plugins en action. Lors du défilement de la page, des blocs, divers éléments ou textes apparaissent, bougent, tournent, etc. Comme le montre la pratique, les clients aiment vraiment ces trucs sophistiqués.
Implémenter des effets de défilement sur une page n'est pas aussi difficile qu'il y paraît à première vue. Tout ce dont vous avez besoin est un plugin de haute qualité et des mains directes. Bien sûr, un maquettiste novice peut rencontrer des difficultés, mais si vous restez assis pendant un moment et comprenez les principes de fonctionnement, la tâche semblera très simple.
Malgré le fait que beaucoup de gens aiment l'animation sur le site, il ne faut pas en faire trop, sinon vous vous retrouverez avec une page surchargée, visuellement mal perçue, dans laquelle toute l'attention sera portée sur tous ces « sifflets », et non sur les informations. qui doit être transmis au visiteur. De plus, plus il y a de scripts connectés, plus la page fonctionne lentement. Dans les navigateurs plus anciens, tout cela peut ne pas fonctionner du tout. Connectez judicieusement les effets. Souvent, une simple apparence lisse et discrète des blocs suffit. Cet effet donne à la page fluidité et dynamique, rendant le site vivant. Dans ma pratique, j'ai vu beaucoup de sites avec des effets sans sens des proportions. Cela me rend malade – le seul sentiment qui surgit. Mais, probablement, les développeurs espéraient un « effet Wow ». Donc. Utilisez tout à bon escient et avec modération !
Tous les plugins sont absolument gratuits, mais je vous recommande de vous familiariser avec les licences, car dans certains cas, vous devez remplir un certain nombre de conditions pour les utiliser à des fins commerciales.
Articles Liés: | |
Création d'un disque de démarrage Partition Magic Le programme Parted Magic n'est pas bootable
Parted Magic est un programme pour les systèmes d'exploitation UNIX développé... Les meilleurs programmes pour créer une image disque ISO
Utiliser des programmes spéciaux. Créer une image virtuelle est très... Réinitialisation du MacBook aux paramètres d'usine : options et instructions
L'arrêt ou le redémarrage de votre Apple iMac réinitialise le contenu de la mémoire... |