2010-03-24 26 views
14

Tôi muốn biết độ lệch x/y của khoảng cách mà người dùng đã "cuộn" trong chế độ xem trong safari di động trên iphone.Làm thế nào để tìm (trong javascript) hiện tại "di chuyển" bù đắp trong điện thoại di động safari/iphone

Đặt một cách khác, nếu tôi (thông qua javascript) tải lại trang hiện tại, tôi muốn tìm các giá trị tôi cần chuyển vào window.scrollTo (...) để định vị lại tài liệu/khung nhìn như hiện tại.

window.pageXOffset luôn báo cáo 0

jquery của $ ('body'). ScrollTop() luôn luôn báo cáo 0

sự kiện có một Trang X, nhưng điều này sẽ không chiếm cuộn của trang đó xảy ra sau khi bạn thả ngón tay ra nếu cử chỉ của bạn là "vuốt" trang lên/xuống. Cụ thể là, nó sẽ cho tôi một điểm khi ngón tay rời khỏi màn hình, nhưng điều đó không phải lúc nào cũng khớp với vị trí của trang sau khi cuộn xong.

Mọi con trỏ?

+0

Không tìm kiếm đầy hứa hẹn http://github.com/jquery/jquery/commit/dab1d7467789c7092366f8231dceee0dc20d2553 – mintywalker

Trả lời

0

Bạn đã thử cách tinh khiết chưa?

document.body.scrollTop 
+1

document.body.scrollTop cũng không hoạt động. Nó sẽ hoạt động trong Safari trên máy tính để bàn, nhưng không hoạt động trên safari di động - nó luôn báo cáo 0. – mintywalker

5

window.pageYOffset sẽ cung cấp cho bạn độ lệch cuộn hiện tại. Có window.pageXOffset nếu bạn cần nó.

+0

Trừ khi nó đã thay đổi trong phiên bản beta gần đây, điều đó không hoạt động. Đó là mấu chốt của câu hỏi ban đầu của tôi ... mặc dù tôi cấp cho bạn tôi đã sử dụng pageXOffset thay vì pageYOffset. – mintywalker

+0

pageYOffset hiện đang hoạt động trong ứng dụng giao hàng của tôi. Tôi không sử dụng X, tuy nhiên, đó có thể là sự khác biệt. – pendor

-1

Hey! Hãy thử đi qua liên kết this.

hoặc thử mã sau.

[myWebView stringByEvaluatingJavaScriptFromString: @"scrollY"];

thực sự - Tôi đã nhận được câu trả lời từ question này.

+5

trừ khi tôi đang thiếu một cái gì đó, đó không phải là javascript! – mintywalker

0

Tôi gặp sự cố tương tự trên iPad. Chỉ cần hủy kích hoạt bảng điều khiển. Chiều cao khung nhìn thay đổi khi bảng điều khiển mở trong Safari.

3

này thực sự sẽ làm việc:

var scrollX = window.pageXOffset; 
var scrollY = window.pageYOffset; 

Nếu bạn đang xem nội dung trong iFrame (đó là phổ biến ở WebViews ví dụ), sau đó bạn sẽ cần phải thêm mẹ:

var scrollX = parent.window.pageXOffset; 

Cũng lưu ý rằng các giá trị này không thể ghi được. Vì vậy, để thay đổi vị trí di chuyển, bạn sẽ cần phải sử dụng phương pháp window.scrollTo:

var scrollX = window.pageXOffset; 
var scrollY = window.pageYOffset; 
window.scrollTo(scrollX -100, scrollY -100); 
1

Đây là một mã đơn giản để tìm nếu thiết bị là iphone và cũng để thay đổi vị trí cuộn đến vị trí cụ thể dựa trên một số hành động .Tôi đã có một vấn đề với iphone chỉ khi tôi nhấp và mở một hình ảnh như một popup, bởi vì di chuyển dọc đi xuống hơn nơi tôi muốn được. Vì vậy, tôi đã viết mã này và nó đã giải quyết được vấn đề.

if((navigator.userAgent.match(/iPhone|iPad|iPod/i))){ 
    ('#tutorial-landlord').click(function(){ 
     window.scroll(100, 1500); // x, y (horizontal, vertical position) 
    }); 
} 

Để tìm vị trí cuộn. Chỉ cần đi tới bảng điều khiển trong chrome và viết window.scrollY cho ngành dọc và xem vị trí thay đổi để lưu ý số đó và thay thế vị trí của x và y

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