विंडो स्क्रॉलिंग एनिमेशन की सीएसएस मान सीमाएं सीमित करना
इस परिदृश्य में, एक उपयोगकर्ता को एक समस्या का सामना करना पड़ रहा है जहां स्क्रॉल करते समय एक मानचित्र तत्व स्लाइड होता है पृष्ठ के नीचे. हालाँकि, मानचित्र अनिश्चित काल तक स्क्रॉल करता रहता है, जिससे उपयोगकर्ता को पादलेख की उपस्थिति के कारण पृष्ठ के निचले भाग तक पहुँचने से रोका जा सकता है।
लक्ष्य मानचित्र का प्रतिनिधित्व करने वाले
$(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 }); } }); });
स्क्रॉल फ़ंक्शन के भीतर एनिमेट() विधि का उपयोग करना उचित नहीं है क्योंकि इससे निरंतर परिवर्तनों के कारण टकराव हो सकता है स्क्रॉल मान, jQuery को दोहराव वाले एनिमेशन निष्पादित करने से रोकता है। केवल स्टॉप() फ़ंक्शन समस्या को पूरी तरह से हल नहीं कर सकता है।इसके बजाय, सीएसएस विधि का उपयोग करने की अनुशंसा की जाती है। यहाँ एक उदाहरण है:
$(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'}); } });
इसके अतिरिक्त, अपनी गणना के भीतर एकाधिक if else कथनों का उपयोग करने से बचें, क्योंकि इससे टकराव भी हो सकता है।
वैकल्पिक दृष्टिकोण$(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 }); } }); });
के लिए ऐसे परिदृश्य जहां लक्ष्य एक विशिष्ट स्क्रॉल स्थिति पर नेविगेशन तत्व को ठीक करना है, निम्नलिखित पर विचार करें दृष्टिकोण:
$(document).ready(function() { $(विंडो).स्क्रॉल(फ़ंक्शन() { var हेडरH = $('.हेडर').outerHeight(true); //यह बॉर्डर, मार्जिन, पैडिंग के साथ हेडर की पूरी ऊंचाई की गणना करेगा कंसोल.लॉग(हेडरएच); var स्क्रॉलवैल = $(यह).स्क्रॉलटॉप(); अगर (स्क्रॉलवैल > हेडरएच) { //जब स्क्रॉल मान आपके चयनकर्ता तक पहुंचता है $('#subnav').css({'position':'fixed','top' :'0px'}); } अन्य { $('#subnav').css({'position':'static','top':'0px'}); } }); }); पूर्व>
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3