2009-08-14 15 views
6

Có ai biết cách lấy kích thước bằng pixel hoặc giá trị tỷ lệ của chế độ xem sau khi người dùng đã nhấn hoặc nhấn đúp để phóng to/thu nhỏ trên một trang bằng JavaScript không?Làm thế nào để bạn có được thang đo khung nhìn sau khi pinch/phóng to trên ứng dụng web iPhone?

Tôi đã thử sử dụng window.innerWidth nhưng tôi đã có kết quả hỗn hợp. Đôi khi có vẻ như chính xác cung cấp số lượng pixel mà chế độ xem đang hiển thị, tuy nhiên, nếu tôi phóng to trên trang và sau đó thực hiện một chụm lớn để thu nhỏ lại, window.innerWidth sẽ ở khoảng 600-700 mặc dù chỉ hiển thị ~ 200px của trang. Trang chỉ rộng 400px và nó không hiển thị hình nền rô bốt "bạn đã đi quá xa" mà bạn thấy khi thu nhỏ ngoài kích thước trang.

Nếu tôi làm các chốt nhỏ để phóng to và thu nhỏ, window.innerWidth có vẻ hoạt động tốt. Rất tiếc, tôi không thể dựa vào người dùng chỉ thực hiện cử chỉ nhỏ nhúm :)

Tôi cũng đã cố gắng sử dụng thuộc tính tỷ lệ trên đối tượng sự kiện cử chỉ, nhưng tôi thấy không đáng tin cậy vì bạn không biết quy mô ban đầu khi bạn tải lại trang hoặc sử dụng các nút quay lại/chuyển tiếp để điều hướng đến trang đó ngay cả khi sử dụng thẻ meta để chỉ định nó.

Cuối cùng, tôi đang cố gắng tạo một ứng dụng nhận thức được thời điểm người dùng đang cố gắng thu nhỏ vượt quá mức thu phóng tối đa vì vậy nếu có cách khác để làm điều này, tôi quan tâm đến điều đó :)

Dưới đây là đoạn code tôi đang sử dụng để có được những innerWidth:

document.body.addEventListener('gestureend', function (evt) { 
    console.log(window.innerWidth); // inaccurate when doing large pinch gestures 
}, false); 

Cảm ơn!

Trả lời

2

Nếu bạn chỉ cố gắng để hạn chế mức độ zoom tối đa, bạn có thể sử dụng một trình duyệt Safari cụ thể thẻ kiểm soát viewport:

<meta name="viewport" content="maximum-scale=2.0"> 

Xem Safari di động cụ thể viewport meta tag spec để biết chi tiết.

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