Maison > interface Web > js tutoriel > jQuery Keep Element en vue lors du défilement

jQuery Keep Element en vue lors du défilement

Lisa Kudrow
Libérer: 2025-02-27 01:05:09
original
677 Les gens l'ont consulté

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.

jQuery Keep Element in View When Scrolling

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);
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

Q2: Scroll instantané vers l'élément?

$('html, body').scrollTop($("#elementID").offset().top);
Copier après la connexion

Q3: défilement horizontal vers l'élément?

$('html, body').animate({ scrollLeft: $("#elementID").offset().left }, 2000);
Copier après la connexion

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;
}
Copier après la connexion

Q5: Faites défiler l'élément sur le bouton cliquer?

$("#buttonID").click(function() {
  $('html, body').animate({ scrollTop: $("#elementID").offset().top }, 2000);
});
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal