2015-03-01 8 views
7

मैंने एक मॉडल बनाया। जब मोडल खुला होता है तो मैं डेस्कटॉप पर स्क्रॉल को overflow:hidden;<body> पर रोक रहा हूं। यह काम कर रहा है।सीएसएस: आईओएस सफारी पर स्क्रॉलिंग को कैसे रोकें?

लेकिन यह मेरे आईफोन 6 एस मोबाइल सफारी पर काम नहीं कर रहा है।

मोबाइल सफारी में मोडल खुला होने पर मैं स्क्रॉलिंग को कैसे रोक सकता हूं?

उत्तर

8

position: fixed साथ यह कम्बाइन iOS पर यह करने के लिए ...

overflow: hidden; 
position: fixed; 
+7

क्षमा एक पुराने धागा फिर से शुरू करने के लिए, लेकिन इस सवाल का जवाब केवल तभी कारगर साबित मोडल शुरू हो जा रही है जबकि पृष्ठ शीर्ष पर सभी तरह से स्क्रॉल किया गया है। यदि पृष्ठ को नीचे स्क्रॉल किया गया है तो "स्थिति: निश्चित" सेटिंग को मोडल ट्रिगर करने के बजाए मोडल ट्रिगर करने से पहले आपको शीर्ष पर वापस स्क्रॉल कर दिया जाएगा, जब आप मोडल ट्रिगर करते थे। क्या कोई समाधान है जो इसे भी संबोधित करता है? –

+0

@ 0sin शरीर की 'ऊंचाई' को अपने 'स्क्रॉलहेइट' पर सेट करें, फिर बच्चों को 'निश्चित' बनाएं और 'ट्रांसफॉर्म' का उपयोग करें, अनुवाद करें (- '+ body.scrollTop +' px) '' उन पर – aleclarson

14

वहाँ एक शानदार तरीका UX पर नतीजों के बिना सीएसएस के साथ यह पूरा करने के (मेरी जानकारी के लिए) नहीं है।

हालांकि यह जावास्क्रिप्ट, और सीएसएस नहीं, सबसे अच्छा तरीका है मैं यह कर पाया है है निम्नलिखित:

// Disable scrolling. 
document.ontouchmove = function (e) { 
    e.preventDefault(); 
} 

// Enable scrolling. 
document.ontouchmove = function (e) { 
    return true; 
} 
+0

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

+0

को प्रभावित नहीं करता है यह प्लस 'ओवरफ्लो: छुपा 'एकमात्र चीज है जिसे मैं काम करने में सक्षम हूं –

+0

आईफोन 7 पर परीक्षण किया गया। ये काम नहीं कर रहा है। – Azarus

संबंधित मुद्दे