2011-12-25 21 views
9

Như tiêu đề gợi ý, tôi cần giải pháp để tránh safari di động khi di chuyển tài liệu khi văn bản được lấy nét. Hành vi mặc định là di chuyển trang sao cho phần đầu của textarea được căn chỉnh với đầu cửa sổ. Tôi chỉ muốn trang của tôi ở lại. Điều này có thể không?Tránh di chuyển safari từ trang cuộn khi textarea tập trung

+1

T ake một cái nhìn [tại đây] (http://stackoverflow.com/questions/6437911/disable-scroll-on-a-uiwebview-allowed) – tipycalFlow

+0

vì vậy, bạn muốn các textarea ẩn đằng sau bàn phím mềm? – soemarko

Trả lời

6

thử với điều này

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

cuộn sự kiện chỉ có tác dụng khi các phần tử có chiều cao cố định và tràn tài sản thiết lập để auto hoặc cuộn

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

séc sự ví dụ: http://jsfiddle.net/4YkNj/

6

Hãy thử điều này:

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

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

Có lẽ bạn cần một bộ đếm thời gian để cho phép trình duyệt để di chuyển các textarea đầu trước khi chặn phong trào.

+0

Đây sẽ là một giải pháp hợp lệ. Mặc dù một số suy nghĩ nhiều hơn về cách bạn sẽ cần phải thực hiện nó sẽ được yêu cầu. Trên một sự kiện tập trung vv có thể? – Sphvn

Các vấn đề liên quan