Home > Web Front-end > CSS Tutorial > How to Correctly Add and Remove jQuery Classes Based on Vertical Scroll?

How to Correctly Add and Remove jQuery Classes Based on Vertical Scroll?

Linda Hamilton
Release: 2024-11-28 09:28:14
Original
175 people have browsed it

How to Correctly Add and Remove jQuery Classes Based on Vertical Scroll?

Add and Remove jQuery Class Based on Vertical Scroll

In this scenario, the user wants to remove the "clearHeader" class from the "header" element and replace it with the "darkHeader" class as the user scrolls down, modifying its appearance. However, the provided code isn't functioning correctly.

Let's analyze the original code:

$(window).scroll(function() {    
    var scroll = $(window).scrollTop();    
    if (scroll <= 500) {
        $(".clearheader").removeClass("clearHeader").addClass("darkHeader");
    }
}
Copy after login

Apart from a few minor adjustments, there are two significant issues:

  • Incorrect Operator: The comparison operator should be ">=" instead of "<=" to correctly identify when to change the class.
  • Selector Error: The selector ".clearheader" is incorrect as it contains a lowercase "H." The correct selector should be ".clearHeader."

Here's the revised code addressing these errors:

$(window).scroll(function() {    
    var scroll = $(window).scrollTop();
    if (scroll >= 500) {
        $(".clearHeader").removeClass("clearHeader").addClass("darkHeader");
    }
});
Copy after login

Additionally, it's recommended not to remove the "clearHeader" class because it's responsible for fixating the header. Instead, apply a new CSS class to modify the styling.

Furthermore, if you intend to restore the "clearHeader" class as the user scrolls back up, implement this code:

$(window).scroll(function() {    
    var scroll = $(window).scrollTop();
    if (scroll >= 500) {
        $(".clearHeader").addClass("darkHeader");
    } else {
        $(".clearHeader").removeClass("darkHeader");
    }
});
Copy after login

To enhance performance and avoid repeatedly querying the DOM, consider caching the header selector:

$(function() {
    var header = $(".clearHeader");
    $(window).scroll(function() {
        var scroll = $(window).scrollTop();
        if (scroll >= 500) {
            header.removeClass('clearHeader').addClass("darkHeader");
        } else {
            header.removeClass("darkHeader").addClass('clearHeader');
        }
    });
});
Copy after login

The above is the detailed content of How to Correctly Add and Remove jQuery Classes Based on Vertical Scroll?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template