Tắt tính năng Thu phóng Pinch trên Web Di động


78

Tôi muốn tắt tính năng Chụm và Thu phóng trên thiết bị di động.

Tôi nên thêm cấu hình nào vào khung nhìn?

Liên kết: http://play.mink7.com/n/dawn/


12
Tôi hy vọng bạn không tạo trang web cho một tổ chức có trụ sở tại Vương quốc Anh - nếu bạn đang tắt, việc tắt tính năng pinch-to-zoom (hiệu quả là một tính năng hỗ trợ tiếp cận) sẽ khiến bạn vi phạm một số luật vì chủ động phân biệt đối xử với người khiếm thị ... Không bao giờ có lý do chính đáng để tắt chức năng này ... Đã từng!
Mike Insch

18
Không phải lúc nào cũng là một ý kiến ​​tồi. Nếu bạn đang tạo một ứng dụng giống như trang web, đó là những gì tôi sẽ làm. Bạn không thể luôn luôn sử dụng cửa hàng ứng dụng vì vậy đây là điều tốt nhất tiếp theo.
Shumii

11
Hãy ngừng làm điều này. Người khiếm thị không thể xem các trang web mà không phóng to chúng và điều này khiến cuộc sống của chúng tôi khó khăn hơn rất nhiều.
Jack Marchetti

32
Bạn có thể tưởng tượng mình đang tạo một ứng dụng kiểu "Google Maps" và lần đầu tiên bạn chụm để phóng to, bạn không còn thấy HỘP NHẬP VĂN BẢN nữa không? Hay CÁC BIỂU TƯỢNG BẢN QUYỀN? Đôi khi, bạn không muốn TOÀN BỘ ỨNG DỤNG thu phóng. Đôi khi, bạn chỉ muốn một phần của nó thu phóng.
Ayelis

7
nếu bạn đang thiết kế một ứng dụng web trang đơn đáp ứng, tính năng thu phóng chụm (cũng là thu phóng tự động) thực sự làm xáo trộn quy trình làm việc, vì trình duyệt sẽ tự động phóng to nếu bạn vô tình nhấp đúp vào một không gian trống.
Tháp Jimmy

Câu trả lời:


169

CHỈNH SỬA: Bởi vì điều này tiếp tục được bình luận, chúng tôi đều biết rằng chúng tôi không nên làm điều này. Câu hỏi đặt ra là tôi phải làm như thế nào , không nên làm như thế nào.

Thêm điều này vào thiết bị di động của bạn. Sau đó, tính chiều rộng của bạn theo tỷ lệ phần trăm và bạn sẽ ổn:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

Thêm tính năng này cho các thiết bị không thể sử dụng chế độ xem:

<meta name="HandheldFriendly" content="true" />

29
tôi đã thêm điều đó. nhưng tôi vẫn có thể chụm và thu phóng.
Harsha MV

cảm ơn tôi đã có một giá trị cổng mặc định. vì thế nó đã được qua cưỡi
Harsha MV

1
Sự khác biệt giữa cái này và stackoverflow.com/a/4472910/198348 là gì?
Ehtesh Choudhury,

3
@Shurane Họ là những câu hỏi khác nhau?
SpaceBeers

9
2019: của PWA là một điều bây giờ và đây là một giải pháp để ngăn chặn những hành vi kỳ lạ có PWA trên các thiết bị di động :)
Jessy

14

điều này sẽ ngăn chặn bất kỳ hành động thu phóng nào của người dùng trong ios safari và cũng ngăn tính năng "thu phóng thành tab":

document.addEventListener('gesturestart', function(e) {
    e.preventDefault();
    // special hack to prevent zoom-to-tabs gesture in safari
    document.body.style.zoom = 0.99;
});

document.addEventListener('gesturechange', function(e) {
    e.preventDefault();
    // special hack to prevent zoom-to-tabs gesture in safari
    document.body.style.zoom = 0.99;
});

document.addEventListener('gestureend', function(e) {
    e.preventDefault();
    // special hack to prevent zoom-to-tabs gesture in safari
    document.body.style.zoom = 0.99;
});

jsfiddle: https://jsfiddle.net/vo0aqj4y/11/


1
Điều này hoạt động trên macOS safari và document.body.style.zoom = 0,99; thậm chí không cần thiết.
Kevin Baragona

12

Đây là tất cả những gì tôi cần:

<meta name="viewport" content="user-scalable=no"/>

11

Đối với tất cả những người đã nói rằng đây là một ý tưởng tồi, tôi muốn nói rằng nó không phải lúc nào cũng là một ý tưởng tồi. Đôi khi sẽ rất nhàm chán khi phải thu nhỏ để xem hết nội dung. Ví dụ: khi bạn nhập một đầu vào trên iOS, nó sẽ phóng to để đưa nó vào giữa màn hình. Bạn phải thu nhỏ sau đó vì việc đóng bàn phím không thực hiện được. Ngoài ra, tôi đồng ý rằng khi bạn dành nhiều giờ để tạo ra một bố cục và trải nghiệm người dùng tuyệt vời, bạn sẽ không muốn nó bị rối tung khi zoom.

Nhưng lập luận khác cũng có giá trị đối với những người có vấn đề về thị lực. Tuy nhiên, theo ý kiến ​​của tôi nếu bạn có vấn đề với mắt, bạn đã sử dụng các tính năng phóng to của hệ thống nên không cần phải xáo trộn nội dung.


3
Bạn nên làm điều này như một bình luận.
Awesomeness

2
Xin lỗi, trình độ của tôi lúc đó không cho phép tôi đăng bình luận mà chỉ có tin nhắn mới, đó là lý do.
Thibaut Rey

2
Đặt kích thước phông chữ thành 16px trên các thành phần biểu mẫu sẽ ngăn thu phóng trên thiết bị iOS.
hellojebus

Tôi có thể nói rằng bạn chưa ở độ tuổi 50. Đối với nhiều người trong chúng ta, không phải chúng ta có vấn đề về thị lực đủ nghiêm trọng đến mức chúng ta phải sử dụng các tiện nghi đặc biệt (thậm chí cả kính đọc sách), NGOẠI TRỪ khi sử dụng các trang web trên iPad mà các nhà thiết kế cho là hoàn hảo với phông chữ nhỏ của chúng. Những trang như vậy nói với tôi rằng "Tôi không quan tâm liệu bạn có thể đọc cái này hay không, ông già."
fool4jesus

2
Tôi là một người đàn ông lớn tuổi có vấn đề về thị lực, nhưng tôi hoàn toàn hiểu tại sao đôi khi nó lại cần thiết. "trang web" không phải lúc nào cũng nhằm mục đích sử dụng cho công chúng hoặc cho mọi thành viên trong xã hội, theo cách giống như việc buộc mọi người dân phải lắp đặt dốc dành cho xe lăn và khối nhà vệ sinh dành cho nam giới trong nhà của họ, bởi vì "đó là luật mà bạn biết ”. chắc chắn nếu bạn đang cung cấp quyền truy cập công khai hoặc sử dụng mọi người, thì những cân nhắc đó sẽ phát huy tác dụng trong kiến ​​trúc. chẳng hạn có những trò chơi ứng dụng web một trang sẽ bị hủy hoại khi cho phép mọi người phóng to và thu nhỏ.
không đồng bộ hóa



3

Tìm thấy ở đây, bạn có thể sử dụng user-scalable=no:

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">


0

Hãy thử với thuộc tính chiều rộng tối thiểu. Hay để tôi giải thích bạn. Giả sử một thiết bị có chiều rộng màn hình là 400px (ví dụ). Khi bạn phóng to, các phông chữ ngày càng lớn hơn. Nhưng các hộp và div vẫn có cùng chiều rộng. Nếu bạn sử dụng chiều rộng tối thiểu, bạn có thể tránh giảm div và hộp của mình.


0

Không chắc điều này có thể giúp được gì không, nhưng tôi đã giải quyết được vấn đề chụm / thu phóng (tôi muốn tránh người dùng phóng to trên ứng dụng web của mình) bằng cách sử dụng mô-đun búa góc:

Trong app.component.html của tôi, tôi đã thêm:

<div id="app" (pinchin)="pinchin();">

và trong app.component.ts của tôi:

  pinchin() {
      //console.log('pinch in');
  }
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.