Cet extrait de code jQuery garde un élément en vue de défiler la page. Une démo montre cet effet sur une annonce latérale droite. Le code est présenté à la fois comme un script autonome et comme un plugin jQuery réutilisable. Enfin, une section FAQ aborde les questions de défilement jQuery communes.
Le code (autonome):
//keep element in view (function($) { $(document).ready(function() { var elementPosTop = $('#jq4u-sidebar-ads').position().top; $(window).scroll(function() { var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height(); if (wintop > elementPosTop) { $('#jq4u-sidebar-ads').css({ "position": "fixed", "top": "10px" }); } else { $('#jq4u-sidebar-ads').css({ "position": "inherit" }); } }); }); })(jQuery);
Le code (plugin jQuery):
/** * jQuery keep element in view plugin. * * @author Sam Deering * @copyright Copyright (c) 2012 jQuery4u * @license http://jquery4u.com/license/ * @link http://jquery4u.com * @since Version 1.0 * @notes Plugin only works on scroll down elements. */ (function($) { $.fn.keepElementInView = function() { var elemPosTop = this.position().top; $(window).scroll(function() { var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height(); if (wintop > elemPosTop) { this.css({ "position": "fixed", "top": "10px" }); } else { this.css({ "position": "inherit" }); } }); return this; }; $(document).ready(function() { $('#jq4u-sidebar-ads').keepElementInView(); }); })(jQuery);
Questions fréquemment posées (FAQ):
Cette section fournit des réponses concises aux questions courantes sur le défilement de l'élément jQuery, y compris les techniques de défilement animé et instantané, de défilement horizontal, de vérifications de la fenêtre et de défilement déclenché par les bouton. Les exemples de code sont légèrement reformatés pour une meilleure lisibilité.
Q1: Animer le défilement vers l'élément?
$('html, body').animate({ scrollTop: $("#elementID").offset().top }, 2000);
Q2: Scroll instantané vers l'élément?
$('html, body').scrollTop($("#elementID").offset().top);
Q3: défilement horizontal vers l'élément?
$('html, body').animate({ scrollLeft: $("#elementID").offset().left }, 2000);
Q4: Vérifiez si l'élément est dans la fenêtre?
function isInViewport(element) { let elementTop = $(element).offset().top; let elementBottom = elementTop + $(element).outerHeight(); let viewportTop = $(window).scrollTop(); let viewportBottom = viewportTop + $(window).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }
Q5: Faites défiler l'élément sur le bouton cliquer?
$("#buttonID").click(function() { $('html, body').animate({ scrollTop: $("#elementID").offset().top }, 2000); });
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!