2012-04-23 95 views
3

我有一個使用ajax加載頁面的移動網站。我想添加的功能之一是在頁面更改時重置縮放級別。頁面更改時重置瀏覽器縮放級別

有沒有一種很好的方法來檢測用戶是否在查看頁面時放大了視圖?

到現在爲止我已經設法檢查縮放。但有時也有雙擊縮放..

+0

當您說頁面更改時,您可以在每個頁面上添加元屬性,將初始縮放和最大比例設置爲1.0 ...這將使頁面以100%縮放模式加載。 – testndtv 2012-04-23 08:34:23

+1

重置視口內容屬性會在某些設備上產生一些「閃爍」效果,並且我只在必要時纔會這樣做(用戶修改了縮放級別)。 – gabitzish 2012-04-23 08:44:40

回答

0

你可以設置[meta name =「viewport」]標記的內容使用javascript設置縮放級別,不幸的是我還沒有找到一種方法來檢測什麼當前縮放級別爲

+0

我不認爲你想用這個搞亂視口。這意味着用戶仍然在瀏覽器中放大,但您正在更改視口來修復它。我猜這會很快變得非常混亂。更好地使用Khallil Mangalji和Fadomire的解決方案。 – s1h4d0w 2016-05-19 15:22:14

+0

視口元標記具有最大比例和最小比例屬性。改變這些應該縮放到您指定的值。 (未經測試,我暫時沒有做過這類事情) – 2016-05-22 04:05:07

9

您可以通過比較innerWidth和文檔寬度來獲取用戶縮放級別。文檔寬度是設備的寬度(以像素爲單位),內部寬度是縮放時屏幕上的像素(與文檔寬度最初相比)。我已經在android(ICS和Jellybean)以及iOS(5和6)上測試過了,它似乎工作。請注意,我沒有每當用戶進行雙擊或捏我的視口設置爲設備寬度或高度

ratio = document.width/window.innerWidth 

    if ratio > 1 then zommed else notZoomed 

然後,你可以做此項檢查。

+0

它不適用於Firefox(比例是NaN),但它在Android默認瀏覽器和iOS上運行良好。 – 2014-10-13 08:13:37

+5

您需要使用document.body.clientWidth而不是document.width,不再支持 – fadomire 2015-07-06 08:56:55

+0

如果viewport沒有設置爲設備寬度,它可能是,沒有放大不會返回1.因此,要熟悉這個解決方案,並且檢查確切的瀏覽器返回什麼值。 – DaSch 2016-08-25 14:34:30

相關問題