दिलचस्प पोस्ट
एसवीजी डोनट का टुकड़ा पथ तत्व (कुंडलाकार क्षेत्र) के रूप में जावास्क्रिप्ट स्ट्रिंग्स और नंबरों के बीच प्लस और माइनस ऑपरेटर्स को अलग तरह से क्यों संभालता है? कंटेंट स्क्रिप्ट्स से क्रोम एक्सटेंशन अपडेट ठीक से कैसे व्यवस्थित करें I std :: wstring वीएस std :: string मुझे टोमकैट के कनेक्शन पूल के लिए जेडीबीसी ड्राइवर को कहाँ रखा है? परेशान जावास्क्रिप्ट समयक्षेत्र समायोजन समस्या मॉड्यूल को समान नाम के साथ मॉड्यूल आयात करने की कोशिश में एक आयात त्रुटि का कारण बनता है डिवेल की ऊँचाई अपनी सामग्री के साथ विस्तारित करें रूबी में इडियामेटिक ऑब्जेक्ट सृजन क्या पायथन में फ़ंक्शन को अग्रेषित करना संभव है? ओपनजीएल ईएस दृश्य में एनीमेशन फ्रीज होता है जब यूआईएसक्रोलएव्यू को iPhone पर खींच लिया जाता है UIImagePickerController स्क्रीन को भर नहीं करता है दिन के समय के आधार पर पृष्ठभूमि को बदलना (जावास्क्रिप्ट का उपयोग करना) अजगर 3 के साथ एक अजगर 2 ऑब्जेक्ट अनपिकलिंग जावास्क्रिप्ट में चर का दायरा क्या है?

fancybox2 / fancybox पृष्ठ को शीर्ष पर कूदने का कारण बनता है

मैंने dev साइट पर fancybox2 लागू किया है

जब मैं फैंसीबॉक्स संलग्न करता हूं (लिंक आदि पर क्लिक करें) इसके पीछे पूरे एचटीएमएल बदलाव – और शीर्ष पर जाता है मैं इसे एक और डेमो में ठीक काम कर रहा हूं, लेकिन जब मैं इसी प्रोजेक्ट को उसी प्रोजेक्ट पर खींचता हूं तो यह शीर्ष पर कूदता है न केवल इनलाइन डिवीज़ के लिंक के साथ, बल्कि सरल छवि गैलरी के लिए भी।

क्या किसी ने इस अनुभव किया है?

Solutions Collecting From Web of "fancybox2 / fancybox पृष्ठ को शीर्ष पर कूदने का कारण बनता है"

यह वास्तव में Fancybox 2 में सहायक के साथ किया जा सकता है

$('.image').fancybox({ helpers: { overlay: { locked: false } } }); 

http://davekiss.com/prevent-fancybox-from-jumping-to-the-top-of-the-page/

जॉर्डनज 77 सही है लेकिन सबसे आसान समाधान सिर्फ स्टाइलशीट jquery.fancybox.css जाना है और overflow: hidden !important; कह रही पंक्ति को बाहर करना है overflow: hidden !important; अनुभाग में। .fancybox-lock

मुझे पता है यह एक पुराना सवाल है, लेकिन मुझे लगता है कि इसके लिए मुझे एक अच्छा समाधान मिल गया है। समस्या यह है कि ब्राउज़र स्क्रॉलबार छुपाने के लिए फैंसी बॉक्स शरीर के अतिप्रवाह मान को बदलता है।

जैसा कि डेव चुंबन बताते हैं, हम निम्नलिखित पैरामीटर जोड़कर ऐसा करने से फैंसी बॉक्स को रोक सकते हैं:

 $('.image').fancybox({ padding: 0, helpers: { overlay: { locked: false } } }); 

लेकिन, अब हम फैंसी बॉक्स विंडो को देखते हुए मुख्य पृष्ठ स्क्रॉल कर सकते हैं। यह पृष्ठ के शीर्ष पर कूदने से बेहतर है, लेकिन शायद यह नहीं है कि हम वास्तव में क्या चाहते हैं।

हम अगले पैरामीटर जोड़कर सही तरीके से स्क्रॉल करने से रोक सकते हैं:

  $('.image').fancybox({ padding: 0, helpers: { overlay: { locked: false } }, 'beforeLoad': function(){ disable_scroll(); }, 'afterClose': function(){ enable_scroll(); } }); 

और इन कार्यों को गैलाम्बलाज़ से जोड़ें देखें: अस्थायी रूप से स्क्रॉलिंग को अक्षम कैसे करें?

  var keys = [37, 38, 39, 40]; function preventDefault(e) { e = e || window.event; if (e.preventDefault) e.preventDefault(); e.returnValue = false; } function keydown(e) { for (var i = keys.length; i--;) { if (e.keyCode === keys[i]) { preventDefault(e); return; } } } function wheel(e) { preventDefault(e); } function disable_scroll() { if (window.addEventListener) { window.addEventListener('DOMMouseScroll', wheel, false); } window.onmousewheel = document.onmousewheel = wheel; document.onkeydown = keydown; } function enable_scroll() { if (window.removeEventListener) { window.removeEventListener('DOMMouseScroll', wheel, false); } window.onmousewheel = document.onmousewheel = document.onkeydown = null; } 

समस्या यह है कि ब्राउज़र स्क्रॉलबार को छिपाने के लिए फैंसीबॉक्स शरीर के अतिप्रवाह मान को बदलता है। मुझे इस व्यवहार को टॉगल करने का विकल्प नहीं मिला।

आप इसे रोकने के लिए फैंसीबॉक्स कोड के इस खंड को निकाल सकते हैं:

 if (obj.locked) { this.el.addClass('fancybox-lock'); if (this.margin !== false) { $('body').css('margin-right', getScalar( this.margin ) + obj.scrollbarWidth); } } 

तथ्य के बावजूद, इस समस्या को सुलझाने का सही तरीका विकल्प के माध्यम से होता है, जो फैंसीबॉक्स प्रदान करता है ( इस उत्तर का संदर्भ दें ), सीएसएस समस्या का समाधान करने के लिए इस्तेमाल किया जा सकता है लाइब्रेरी की सीएसएस फ़ाइल को संपादित करने की कोई आवश्यकता नहीं है, बस इसे एप्लिकेशन के मुख्य स्टाइलशीट में जोड़ें:

 html.fancybox-lock { overflow: visible !important; } 

कोड तत्व के मूल अतिप्रवाह को रीसेट करता है समस्या यह है कि overflow: hidden; <html> तत्व पर स्क्रॉलबार छुपाता है, जिसके कारण पृष्ठ को शीर्ष पर "कूद" करने का कारण बनता है स्क्रॉलबार की स्थिति को संरक्षित करने के लिए, हम अतिप्रवाह के साथ overflow: visible; अधिलेखित करते हैं overflow: visible;

यह भी मदद की

 .fancybox-lock body { overflow: visible !important; } 

स्वीकृत उत्तर पूर्ण नहीं है क्योंकि यह वास्तव में समस्या को हल नहीं करता है, यह सिर्फ इसे टालता है! यहां एक अधिक पूर्ण जवाब दिया गया है जो वास्तव में विंडो कूदने की समस्या को ठीक करते हुए आपको वांछित कार्यक्षमता देता है:

  $('.fancybox').fancybox({ helpers: { overlay: { locked: false } }, beforeShow:function(){ $('html').css('overflowX', 'visible'); $('body').css('overflowY', 'hidden'); }, afterClose:function(){ $('html').css('overflowX', 'hidden'); $('body').css('overflowY', 'visible'); } }); 

हो सकता है कि यह जवाब बहुत देर हो चुकी है लेकिन शायद यह भविष्य में मदद कर सकता है, अगर छवि को क्लिकलिंग / समापन करने के बाद आपकी वेबसाइट ऊपर स्क्रॉल कर देती है, तो आप इसे हटा सकते हैं:

 F.trigger('onReady'); 

या बेहतर उपयोग:

 /*F.trigger('onReady');*/ 

फैंसी बॉक्स संस्करण में: 2.1.5 (शुक्र, 14 जून, 2013) कोड का वह भाग लाइन 897 पर है।

आप वास्तव में ऐसा कोड कर सकते हैं यदि आप फ़ैक्सबॉक्स डिफ़ॉल्ट फ़ंक्शन का उपयोग कर रहे हैं:

  $(document).ready(function() { $(".fancybox").fancybox({ padding: 0, helpers: { overlay: { locked: false } } }); }); 

मैंने इसके साथ तय किया:

 overflow: hidden !important; 

jquery.fancybox.css में jquery.fancybox.css .fancybox-lock बॉडी में। और स्क्रॉलबार कूद नहीं है 🙂