2011-12-25 13 views
9

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

+1

टी एके एक नज़र [इस पर] (http://stackoverflow.com/questions/6437911/disable-scroll-on-a-uiwebview-allowed) – tipycalFlow

+0

तो, क्या आप सॉफ्टएयर कीबोर्ड के पीछे टेक्स्टरेरा छिपाना चाहते हैं? – soemarko

उत्तर

6

इस

// javascript.js 
var locked_scroll = false; 
var last_pos = 0; 

document.getElementById('my-text').addEventListener('focus', function(event){ 
    console.log('set locked'); 
    locked_scroll = true; 
    last_pos = document.getElementById('wrapper').scrollTop 
}); 

document.getElementById('my-text').addEventListener('blur', function(event){ 
    console.log('set unlocked'); 
    locked_scroll = false; 
}); 

document.getElementById('wrapper').addEventListener("scroll", function(event){ 

    if(locked_scroll) { 
     event.target.scrollTop = last_pos; 
    } 

}, true); 

घटना स्क्रॉल केवल काम करता है जब तत्व एक निश्चित ऊंचाई अतिप्रवाह संपत्ति ऑटो या स्क्रॉल

#wrapper { 
    height: 300px; 
    overflow: auto;  
} 

जांच करने के लिए सेट के साथ की कोशिश उदाहरण: http://jsfiddle.net/4YkNj/

6

इस प्रयास करें:

<script type="text/javascript"> 
    function blockMove() { 
     event.preventDefault() ; 
} 
</script> 

और

<input name="textbox" type="text" value="" onkeyup="blockMove;"/> 

शायद तुम एक टाइमर की जरूरत है ब्राउज़र पाठ क्षेत्र आंदोलन को अवरुद्ध करने से पहले शीर्ष पर स्क्रॉल करने के लिए अनुमति देने के लिए।

+0

यह एक वैध समाधान होगा। यद्यपि कुछ और विचार करते हैं कि आपको इसे लागू करने की आवश्यकता होगी, लेकिन इसकी आवश्यकता होगी। एक फोकस घटना आदि पर शायद? – Sphvn

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