Heim >Web-Frontend >js-Tutorial >JQuery Bleiben Sie das Element beim Scrollen in der Ansicht

JQuery Bleiben Sie das Element beim Scrollen in der Ansicht

Lisa Kudrow
Lisa KudrowOriginal
2025-02-27 01:05:09682Durchsuche

Dieser JQuery -Code -Snippet hält ein Element in Ansicht, als die Seite scrolls. Eine Demo zeigt diesen Effekt auf eine rechte Seitenleiste. Der Code wird sowohl als eigenständiges Skript als auch als wiederverwendbares JQuery -Plugin dargestellt. Schließlich befasst sich ein FAQ -Abschnitt mit allgemeinen JQuery Scrolling -Fragen.

jQuery Keep Element in View When Scrolling

Der Code (Standalone):

<code class="language-javascript">//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);</code>

Der Code (JQuery -Plugin):

<code class="language-javascript">/**
 * 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);</code>

häufig gestellte Fragen (FAQs):

Dieser Abschnitt enthält präzise Antworten auf gemeinsame Fragen zum Bildlauf von JQuery-Elementen, einschließlich Techniken für animierte und sofortige Scrollen, horizontales Scrollen, Ansichtsfenster und Schaltflächen-ausgelöste Scrollen. Die Code -Beispiele sind für eine verbesserte Lesbarkeit leicht neu formatiert.

Q1: SCROLL ZU ELEMENTEN?

<code class="language-javascript">$('html, body').animate({ scrollTop: $("#elementID").offset().top }, 2000);</code>

q2: Instant Scroll to Element?

<code class="language-javascript">$('html, body').scrollTop($("#elementID").offset().top);</code>

Q3: Horizontale Schriftrolle zum Element?

<code class="language-javascript">$('html, body').animate({ scrollLeft: $("#elementID").offset().left }, 2000);</code>

Q4: Überprüfen Sie, ob das Element im Ansichtsfenster ist?

<code class="language-javascript">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;
}</code>

Q5: Scrollen Sie zum Element auf der Schaltfläche Klicken?

<code class="language-javascript">$("#buttonID").click(function() {
  $('html, body').animate({ scrollTop: $("#elementID").offset().top }, 2000);
});</code>

Das obige ist der detaillierte Inhalt vonJQuery Bleiben Sie das Element beim Scrollen in der Ansicht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn