我想要一個按鈕,放大變焦功能(增加字體大小是主要目標,但圖像和表格等也想)我如何能實現像瀏覽器的CTRL +
回答
有zoom css3 property正是這個,最新的webkit瀏覽器(chrome,safari)支持它。
編輯:顯然,即使IE6支持它在某些方面,檢查以下
的意見對你的身體或容器設置縮放CSS屬性應的伎倆。可以像使用jQuery一樣簡單,如$('body').css('zoom', '200%');
。
我不認爲IE6支持css3 – code511788465541441
@ user521180:如果你明確需要IE6的支持,恐怕你運氣不好,除非你可以用相對字體來擺弄一些東西,這很難,可能不會按預期工作。 – ChrisR
奇怪的是在這種情況下,IE確實支持縮放...這是他們幾年前的黑客之一。但它的行爲奇怪......縮放包括窗體控件邊框在內的所有東西...... – scunliffe
的工作理念是使用JavaScript/jQuery在單擊時加載覆蓋CSS樣式,例如。所有東西的大小都會覆蓋基本的大小。
方法1
您需要設置一個變量存儲您的變焦量。
當您應用放大或縮小時,請相應地更改此變量並更改頁面上每個元素的大小,顯示爲塊的元素的寬度和高度以及字體大小。
方法2
有不同的樣式,加載此刻的變焦值的變化所需要的一個。
方法3
變化相對於縮放級別的元素只有類和爲每個類變焦的CSS規則。
無論如何,你試圖做的事對我看起來是錯誤的。
下面的代碼zoomes它適合1,024像素= 100%,如果可用空間較小的頁面。如果有足夠的空間,頁面將按原樣顯示。
https://jsfiddle.net/xgqw5bjo/3/
注意,與setting style via jQuery版本不作爲jQuery的工作處理前綴本身,而是在這個解決方案,我需要控制他們每個人。
~function() {
var $window = $(window), $body = $("body");
var ie = document.documentMode;
function updateSizes() {
var width = $window.width(), scale = Math.min(width/1024, 1);
var style = $body[0].style;
style.msZoom = ie === 8 || ie === 9 ? scale : 1;
style.zoom = ie === 10 || ie === 11 ? 1 : scale;
style.mozTransform = "scale(" + scale + ")";
style.oTransform = "scale(" + scale + ")";
style.transform = "scale(" + scale + ")";
}
$window.resize(updateSizes);
updateSizes();
}();
html {
width: 100%;
overflow: hidden;
}
body {
margin: 0;
transform-origin: top left;
}
@supports (transform: scale(1)) {
body {
-ms-zoom: 1 !important;
zoom: 1 !important;
}
}
div {
width: 1024px;
height: 128px;
background: url(//i.stack.imgur.com/eMSCb.png) repeat-x;
background: repeating-linear-gradient(to right, blue, red 256px);
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div></div>
理論上應該按以下方式工作:
- IE 5。5 - 7 變焦
- IE 8 - 9個-MS-變焦
- IE 10 - 11 變換 & 即
邊緣12+ 變換 & @supports
Opera 11.5 - 12.0 -o-tra nsform
歌劇12.1 變換
火狐3.5 - 15 -moz變換
- 火狐16+ 變換
火狐22+ 變換(具有
@supports
,但還沒有zoom
)的Safari 4 - 8 變焦
的Safari 9+ 變換 & @supports(出現在同一時間)
鉻4 - 27 變焦
- Chrome 28 - 35 zoom(有
@supports
,但還沒有transform
還) - 鉻36+ 變換 & @supports
如果我添加-webkit-transform
,它在Safari 3.1開始工作 - 3.2,而將剎車了很多別人的。
其實對於現代瀏覽器的結果是通過使用transform
和disgarding zoom
。所有現代活着的瀏覽器(Edge,Firefox,Safari,Chrome)已經具有轉換 & @supports並符合標準,所以代碼將來不會被破壞。
測試中的代碼:
- IE 11
- 邊緣15
- 歌劇12。18
- 火狐50
- Safari 5的(勝)
- 的Safari 10(蘋果機)
- 鉻54,約瀏覽器58個
詳細支持:
- http://caniuse.com/#feat=css-zoom
- http://caniuse.com/#feat=css-featurequeries(約
@supports
) - http://caniuse.com/#feat=transforms2d
- 1. 實現瀏覽器
- 2. 如何實現JSP瀏覽器操作
- 3. 我想實現像「Es文件瀏覽器局域網」的功能
- 4. 如何像瀏覽器一樣實現客戶端HTTP緩存?
- 5. 瀏覽器EventListenerList實現
- 6. 如何爲我的(Flash)瀏覽器遊戲實現COMET?
- 7. JavaScript中的跨瀏覽器XPath實現
- 8. 我如何在瀏覽器
- 9. 如何在現代瀏覽器中實現lodash _.remove函數?
- 10. 在我的瀏覽器中保存與PhantomJS像ctrl + s的網站
- 11. 禁用瀏覽器的「CTRL + S」默認功能
- 12. JavaScript - 實現圖像寬度和高度的功能(跨瀏覽器)
- 13. Ctrl或Shift在每個瀏覽器
- 14. MySQL 2瀏覽器像sqlite3瀏覽器?
- 15. 如何實現圖像的圖像限制不能通過瀏覽器URL在AngularJS中拖動?
- 16. 如何在Xamarin中實現像android這樣的文件瀏覽器形式IOS
- 17. 我不能作出任何瀏覽器
- 18. VS2010:按Ctrl-PgUp鍵/ -PgDown像在瀏覽器中
- 19. 類似Android瀏覽器的實現,我在哪裏緩存圖像
- 20. 如何實現瀏覽器與後端的通信?
- 21. Javascript:如何模擬瀏覽器cookie的實現?
- 22. 如何實現同等高度的跨瀏覽器div
- 23. 如何,以實現軌跨瀏覽器的@ font-face支持
- 24. 黑莓瀏覽器字段實現
- 25. 在瀏覽器中實現stdout.write/stderr.write
- 26. 通過瀏覽器實現.less文件
- 27. 文件瀏覽器對話框實現
- 28. Installshield 11.5:如何實現瀏覽文件功能?
- 29. 如何在ios中實現瀏覽功能
- 30. 我該如何檢查我的AJAX瀏覽器功能?
你們是不是要做到這一點你自己的網站嗎?還是你正在訪問的? – scunliffe
有關其他問題,請參見[我的答案](http://stackoverflow.com/questions/4386760/calling-keyevent-from-mouse/4386873#4386873) –
爲什麼你需要做這個?您的用戶當然可以使用他們的瀏覽器嗎? – Marcin