2011-12-25 23 views
9

Sayfa başı gezinirken mobil safranın sayfadan ilerlemesini engelleyin. Başlıktan anlaşılacağı gibi, bir textarea odaklandığında, mobil safranın belgeyi kaydırmasını önlemek için bir geçici çözümüm olması gerekir. Varsayılan davranış, sayfayı kaydırmaktır, böylece textarea'nın tepesi pencerenin üst kısmı ile hizalanır. Sadece sayfamın kalmasını istiyorum. Mümkün mü?Textarea odaklı

+1

T [Bu] (http://stackoverflow.com/questions/6437911/disable-scroll-on-a-uiwebview-allowed) – tipycalFlow

+0

bir bakış, bu yüzden yumuşak klavye arkasında gizli textarea ister misiniz? – soemarko

cevap

6

eleman sabit yüksekliği oto veya kaydırma

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

onay ayarlı taşma özelliği varken olay kaydırma çalışır bu

// 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); 

ile deneyin örnek: http://jsfiddle.net/4YkNj/

6

bu deneyin:

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

ve

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

Belki tarayıcı hareketini engellemeden önce top textarea kaydırmak için izin verecek bir zamanlayıcı gerekir.

+0

Bu geçerli bir çözüm olacaktır. Bazıları, onu nasıl uygulamaya koymanız gerektiğine dair daha fazla düşünmek zorunda olsa gerek. Bir odak olayında vs belki? – Sphvn