2012-03-10 34 views
6

Tôi muốn tạo ứng dụng toàn màn hình html5. Tôi đã tạo một trang và thêm nó làm biểu tượng cho iphone của tôi. Tôi đã thêm thẻ meta:Làm thế nào để vô hiệu hóa nảy trong ứng dụng iphone toàn màn hình html5?

<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 
<meta name="viewport" content="width=device-width, user-scalable=no" /> 

Điều tôi muốn đạt được là: thanh trạng thái màu đen ở trên cùng (điều này không hoạt động và tôi không biết tại sao. Thanh trạng thái mặc định ... bất kỳ ý tưởng nào) không có khả năng để phóng to (như trong ứng dụng facebook) - điều này hoạt động tốt.

Bây giờ vấn đề - tôi có thể cuộn trên iphone của mình ngay cả khi ứng dụng của tôi vừa với màn hình. Nó bị trả lại, nhưng tôi không muốn hành vi này. Tôi muốn vô hiệu hóa và cho phép di chuyển cho một div cụ thể (.ui-nội dung). Làm thế nào tôi có thể đạt được điều đó?

CHỈNH SỬA: thanh trạng thái hiện có màu đen. Nó thay đổi sau một thời gian. Là phiên bản trước được lưu trữ trên iphone hay cái gì?

+0

http://www.hakoniemi.net/labs/scrollingOffset/nonbounce.html –

Trả lời

15

này sẽ ngăn chặn di chuyển trên toàn bộ trang

document.ontouchmove = function(e) {e.preventDefault()}; 

Trong trường hợp của bạn, nơi bạn muốn có một số divs được cuộn, và một số không, bạn sẽ có thể để đón sự kiện này trước khi nó được cho là tài liệu

scrollableDiv.ontouchmove = function(e) {e.stopPropagation()}; 
+1

Giải pháp này có phù hợp với bạn không? Điều này thực sự dừng lại nảy khi chạy từ bên trong safari, khi trên trang web độc lập (thông qua liên kết "thêm vào trang chủ") trang tiếp tục nảy ra ... – liorda

+1

Cố gắng tốt, hoạt động cho hầu hết các phần. Ngoại trừ khi phần tử đã bật cuộn được cuộn lên trên cùng hoặc dưới cùng. Sau đó, hiệu ứng trả lại vẫn được kích hoạt. – mrt

+0

Trong khi công trình này, tôi đã gặp phải vấn đề mà điều này dường như gây ra tương tác tap/click như các nút để thất bại đôi khi (có lẽ, nếu có bất kỳ chuyển động của số liên lạc trong khi kích hoạt các nhấp chuột). Bây giờ giải pháp của tôi cho điều đó là không gọi preventDefault nếu e.target là một nút, liên kết hoặc phần tử đầu vào. –

1

Nếu bạn sử dụng Cordova 1.7+, mở file Cordova.plist và thiết lập UIWebViewBounce chìa khóa để NO

+0

Hãy cẩn thận khi đăng bản sao và dán các câu trả lời chính xác/đúng nguyên văn cho nhiều câu hỏi, những câu hỏi này có xu hướng bị cộng đồng gắn cờ là "spam". Nếu bạn đang làm điều này thì điều đó thường có nghĩa là các câu hỏi là bản sao để gắn cờ chúng như vậy: http://stackoverflow.com/a/12394389/419 – Kev

+0

Ok xin lỗi về điều đó. –

0

mở rộng tiếp cận dmanxii ở đây là những gì chúng tôi đang làm.

$("body").on("touchmove", function (event) { 
     if ($(event.target).is(".WhatEverClass") || $(event.target).parentsUntil().is(".ParentClass")) { 
      //console.log("NOT Disabled"); 
     } 
     else { 
      //console.log("Disabled"); 
      event.preventDefault(); 
     } 
    }); 
Các vấn đề liên quan