火狐浏览器:有没有其他替代方案可以取代.css("zoom")?

5

.css("zoom") 在Firefox和IE中无法正常工作,但在Chrome上可以正常使用。

我的代码只能在Chrome上运行:

//ZoomIn Button
    $('.zoom--actions .zoom-in').on('click', function() {
        if ( $(".img-zoom").css("zoom")==1){
            $(".img-zoom").css("zoom", "125%");
        }
        else if ( $(".img-zoom").css("zoom")==0.75){
            $(".img-zoom").css("zoom", "100%");
        }
    });
1个回答

3

CSS缩放属性,支持以下浏览器:IE 5.5+OperaSafari 4Chrome

Firefox是唯一不支持缩放的主流浏览器,但您可以在Firefox 3.5及以上版本中使用-moz-transform来代替。

div.zoom {
      zoom: 2; /* all browsers */
     -moz-transform: scale(2);  /* Firefox */
}

让我们来解决这个问题。

试一下这段代码片段。

$('.zoom--actions .zoom-in').on('click', function() {
  if ($(".img-zoom").css("zoom")==1 | $(".img-zoom").css({"-moz-transform":"scale(1)"})){
      $(".img-zoom").css("zoom", "125%").css({"-moz-transform":"scale(1.25)"});
  }
  else if (  $(".img-zoom").css("zoom")==0.75 | $(".img-zoom").css({"-moz-transform":"scale(0.75)"})){
      $(".img-zoom").css("zoom", "100%").css({"-moz-transform":"scale(1)"});
    
  }
});
.img-zoom{
  -moz-transform: scale(1);
  zoom:1;
}
.zoom--actions{
  margin:20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="zoom--actions">
  <button class="zoom-in">Zoom</button>
  <img class="img-zoom" src="https://css-tricks.com/wp-content/themes/CSS-Tricks-17/images/browser-logos/chrome_64x64.png">
</div>


在我的情况下,我如何将-moz-transform包含到上面的代码中? - Abdelwahed SARJAMI
1
@Abdelwahed SARJAMI,$('.img-zoom').css({ '-moz-transform' : 'scale(2)'}); - s.kuznetsov
我正在更新答案,并附上可运行的代码,请稍等片刻。 - Rayees AC
5
似乎 -moz-transformzoom 的行为不同。它会裁剪元素而不是放大所有内容但保持其在视图内。 - Yanfeng Liu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接