【问题标题】:-webkit-clip-path:inset equivalent in Firefox-webkit-clip-path:inset 等效于 Firefox
【发布时间】:2015-05-27 19:54:14
【问题描述】:

一个简单的问题:我得到了这个clip-path maskChrome 一起工作的问题,想知道一个简单的方法来获得与Firefox 相同的效果。

我做了一些研究,发现 Firefox's clip-pathsvg 一起使用,但这是唯一的方法吗?在这种情况下如何动态更改mask

HTML:

 <div id="image1" class="frame">
    <div class="layer"></div>
    <div class="layer"></div>
 </div>
 <input id="range1" type="range" value=0 max=100 oninput="UpdateImage('image1');"></input>

Javascript:

function UpdateImage(id) {
    image_elem = document.getElementById(id);
    layers = image_elem.getElementsByClassName("layer");
    range = document.getElementById("range1");
    layers[1].setAttribute("style", "-webkit-clip-path:inset(" + range.value + "% 0 0 0)");
}

Here's it working with Chrome.

【问题讨论】:

  • 附言。您可以对第二张使用相同的图像,但应用过滤器:灰度(100%);节省带宽。 (demosthenes.info/blog/532/…)
  • 感谢您的建议!在这种情况下,图像恰好是灰度镜,但并非所有人都这样。

标签: css firefox clip-path


【解决方案1】:

如果您关心的是浏览器支持,我会建议使用不同的方法来处理相同的输出:使用高度而不是 clip-path

这将为(至少)chrome、Firefox、IE、safari、opera...提供浏览器支持:

function UpdateImage(id) {
    image_elem = document.getElementById(id);
    layers = image_elem.getElementsByClassName("layer");
    range = 100 - document.getElementById("range1").value;
    layers[1].setAttribute("style", "height:" + range + "%");
}
.frame {
    position:relative;
    width: 375px;
    height: 250px;
}
.frame .layer {
    position:absolute;
    bottom:0;
    width: inherit;
    height: inherit;
    background-size: 100% auto;
    background-position: left bottom;
}
#image1 .layer:nth-child(1) {
    background-image:url("http://rlc.site90.net/images/img1_layer0.jpg");
}
#image1 .layer:nth-child(2) {
    background-image:url("http://rlc.site90.net/images/img1_layer1.jpg");
}
#range1 {
    width:375px;
}
<div id="image1" class="frame">
    <div class="layer"></div>
    <div class="layer"></div>
</div>
<input id="range1" type="range" value=0 max=100 oninput="UpdateImage('image1');"/>

【讨论】:

  • 我标记为已接受,因为此解决方案符合我的需求。虽然,现在标题可能有点误导,因为它与剪辑路径无关。此外,为了获得完全相同的效果,我必须将函数更改为 (1 - range) 以使其在同一方向上剪辑。
猜你喜欢
  • 2019-02-17
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 2014-04-09
  • 2013-02-14
  • 2013-10-26
  • 2022-07-10
相关资源
最近更新 更多