使用jQuery增加和减少页面的比例

时间:2014-08-21 13:59:51

标签: javascript jquery html css

我在html代码中创建了两个按钮

<a href="#" class="increase">+</a>
<a href="#" class="decrease">-</a>

我想要做的是点击按钮并缩放页面

我开发了一个jquery脚本,但它只适用于chrome

  $(".decrease").click(function () {
        $("body").css('zoom',function (index,value) {
            if(value < 0.8){
                return value;
            } else {
                return parseFloat(value) - 0.1;
            }
        });
  });

  $(".increase").click(function () {
        $("body").css('zoom',function (index,value) {
            if(value > 1.2){
                return value;
            } else {
                return parseFloat(value) - 0.1;
            }
        });
  });

任何人都可以帮助我吗?

感谢

3 个答案:

答案 0 :(得分:1)

请参阅此处jsfiddle - http://jsfiddle.net/1totyrhj/

此变体适用于所有现代浏览器。

<强>的JavaScript

(function () {
    var currentScale = 1,
        cssPrefixesMap = [
            'scale',
            '-webkit-transform',
            '-moz-transform',
            '-ms-transform',
            '-o-transform',
            'transform'
        ];

    function setScale(scale) {
        var scaleCss = {};

        cssPrefixesMap.forEach(function (prefix) {
            scaleCss[prefix] = 'scale(' + scale + ')';
        });

        $('div').css(scaleCss);
    }

    $(".decrease").click(function () {
        setScale(currentScale = currentScale - 0.1);
    });

    $(".increase").click(function () {
        setScale(currentScale = currentScale + 0.1);
    });
})();

答案 1 :(得分:0)

浏览器处理CSS缩放的方式有很多种,例如在进行x2缩放时:

zoom: 2; /* IE */
-moz-transform: scale(2); /* Firefox */
-moz-transform-origin: 0 0;
-o-transform: scale(2); /* Opera */
-o-transform-origin: 0 0;
-webkit-transform: scale(2); /* Safari And Chrome */
-webkit-transform-origin: 0 0;
transform: scale(2); /* Standard Property */
transform-origin: 0 0;  /* Standard Property */

你需要一种方法来处理它们。 (从这个帖子中无耻地窃取财产清单:complete styles for cross browser CSS zoom

答案 2 :(得分:0)

更改ID的类,然后尝试一下:

    var currFFZoom = 1;
    var currIEZoom = 100;

    $('#increase').on('click',function(){
        if ($.browser.mozilla){
            if(currFFZoom < 1.2)
            {
            var step = 0.2;
            currFFZoom += step; 
            $('body').css('MozTransform','scale(' + currFFZoom + ')');
            }
        } else {
            if(currIEZoom < 120)
            {
            var step = 20;
            currIEZoom += step;
            $('body').css('zoom', ' ' + currIEZoom + '%');
        }}
    });

    $('#decrease').on('click',function(){
        if ($.browser.mozilla){
             if(currFFZoom > 0.8)
            {
            var step = 0.2;
            currFFZoom -= step;                 
            $('body').css('MozTransform','scale(' + currFFZoom + ')'); }

        } else {
            if(currIEZoom > 80)
            {
            var step = 20;
            currIEZoom -= step;
            $('body').css('zoom', ' ' + currIEZoom + '%');
            }
        }
    });

编辑:在一定比例(最小/最大)之后适应阻止。