Limiting CSS Value Limits of Window Scrolling Animation
In this scenario, a user is experiencing an issue where a map element slides as they scroll down the page. However, the map continues to scroll indefinitely, preventing the user from reaching the bottom of the page due to the presence of a footer.
The goal is to limit the scrolling of the
The provided JavaScript code animates the map to move as the user scrolls:
$(function() { var $sidebar = $("#map"), $window = $(window), offset = $sidebar.offset(), topPadding = 15; $window.scroll(function() { if ($window.scrollTop() > offset.top) { $sidebar.stop().animate({ marginTop: $window.scrollTop() - offset.top topPadding }); } else { $sidebar.stop().animate({ marginTop: 0 }); } }); });
Addressing the Issue
Using the animate() method within the scroll function is not advisable as it can lead to conflicts due to continuous changes in the scroll value, preventing jQuery from performing repetitive animations. The stop() function alone might not resolve the issue entirely.
Instead, it is recommended to utilize the CSS method. Here's an example:
$(window).scroll(function() { var scrollVal = $(this).scrollTop(); if ( scrollVal > offset.top) { $sidebar.css({ 'margin-top': (($window.scrollTop() - offset.top) topPadding) 'px' //added 'px' here to prevent old internet explorer bugs }); } else { $sidebar.css({'margin-top':'0px'}); } });
Additionally, avoid using multiple if else statements within your calculations, as this can also cause conflicts.
Alternative Approach
For scenarios where the goal is to fix a navigation element at a specific scroll position, consider the following approach:
$(document).ready(function() { $(window).scroll(function() { var headerH = $('.header').outerHeight(true); //this will calculate header's full height, with borders, margins, paddings console.log(headerH); var scrollVal = $(this).scrollTop(); if ( scrollVal > headerH ) { //when scroll value reach to your selector $('#subnav').css({'position':'fixed','top' :'0px'}); } else { $('#subnav').css({'position':'static','top':'0px'}); } }); });
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3