WEB前端开发技术杂谈

前端笔记(一)--》Zoom 属性及解决火狐不支持方法

2019-08-08  本文已影响0人  谢冰Drama

最近遇到 需要根据 缩放比例 来 缩放页面内的元素,页面内元素的 相对位置不变。

于是用到了 zoom 属性。

zoom 属性 是可以 对 元素内的所有元素 进行缩放。

用法:

function changeZoom() {

    var width = $(window).width();

    var height = $(window).height();

    var w = $("#container").width();

    var h = $("#container").height();

    var zoom = Math.min(width / w, height / h);

    //console.log(zoom);

    var left = (width - w * zoom) / 2;

    var top = (height - h * zoom) / 2;

    //console.log("left:" + left + ";right:" + top);



    //$("#container").css("left", pixels(left)).css("top", 
pixels(top)).css("transform", zoom);

    $("#container").css("left", pixels(left)).css("top", pixels(top)).css("zoom", 
zoom);

    //$("#container").css("zoom", zoom);

};
function pixels(n) {

    return String(n) + "px";

};

window.onresize = function() {



    changeZoom();


};

$(document).ready(function () {

    changeZoom();


});



但是 火狐不支持zoom ,但支持
-moz-transform:scale(zoom)
transform-origin:left top

那么只需要 将代码更改为:

function changeZoom() {

    var width = $(window).width();

    var height = $(window).height();

    var w = $("#container").width();

    var h = $("#container").height();

    var zoom = Math.min(width / w, height / h);

    //console.log(zoom);

    var left = (width - w * zoom) / 2;

    var top = (height - h * zoom) / 2;

    //console.log("left:" + left + ";right:" + top);



    //$("#container").css("left", pixels(left)).css("top", 
pixels(top)).css("transform", zoom);

    $("#container").css("left", pixels(left)).css("top", pixels(top)).css("zoom", 
zoom).css('-moz-transform', "scale(" + zoom + ")").css("transform-origin", "left 
top");

    //$("#container").css("zoom", zoom);

};
function pixels(n) {

    return String(n) + "px";

};

window.onresize = function() {



    changeZoom();


};

$(document).ready(function () {

    changeZoom();


});



上一篇下一篇

猜你喜欢

热点阅读