【问题标题】:image opacity from 0 to 1 with css使用css从0到1的图像不透明度
【发布时间】:2013-08-30 19:22:04
【问题描述】:

我希望我的图片如下所示:

图像的底部是透明的,顶部的透明度为 1。 我可以用颜色做这个效果,线性渐变:

-webkit-linear-gradient(black, transparent);

但是图片也可以吗?

【问题讨论】:

  • 图片背后是什么?
  • 使用具有透明度的静态 PNG,还是需要动画?
  • 没有一点 javascript 和画布无法修复。
  • 嗯,是的,我可以只使用普通图像。但是现在如何使用 css 或其他东西来实现这一点很有趣,也许我想为它制作动画是的;)图像后面是身体的背景图像。

标签: css image opacity


【解决方案1】:

我知道的最新最酷的方法是使用 HTML 5 掩码。

是这样的:

CSS:

.masked
{
    mask: url(#m1); 
}

HTML 5:

<svg width="0" height="0">
  <defs>
    <linearGradient id="gradient" x1="0" y1="0" x2 ="0" y2="100%">
      <stop stop-color="white" offset="0"/>
      <stop stop-color="black" offset="1"/>
    </linearGradient>

    <mask id="masking" maskUnits="objectBoundingBox" maskContentUnits="objectBoundingBox">
      <rect y="0.1" width="1" height="0.9" fill="url(#gradient)" />
    </mask>
  </defs>
</svg>

<svg xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="350">
    <image xlink:href="http://upload.wikimedia.org/wikipedia/commons/4/4d/Iss007e10807_darker.jpg"
           width="500" height="350" class="masked"></image>
</svg>

jsFiddle Demo


进一步阅读:

【讨论】:

  • 哇,谢谢你。但现在我必须删除每一行以查看它的作用以及它是如何工作的。 ^^
  • 这只是一个例子。花 10 分钟阅读它并查看实时示例。没那么复杂。
  • 哦,我看到你刚刚发布了网站上的示例 sry
  • 非常好,又一个聪明的解决方案!
  • 嗯,谢谢,但它不起作用。 Chrome 能做到这一点吗?等我试试吧。编辑:不,他没有这样做:(
【解决方案2】:

我对 CSS 的尝试 :)

Codepen 示例:http://cdpn.io/hzBav

CSS(淡出更新)

figure {
  display: inline-block;
  position: relative;
}

.overlay {
  display: block;
  height: 300px;
  position: absolute;
  width: 300px;

  background-image: -moz-linear-gradient(
  rgba(0, 0, 0, 0.8) 0%, rgba(255, 255, 255, 0) 85%
  );
}

.overlay:after {
  content: '';
  display: block;
  height: 300px;
  width: 300px;

  background-image: -moz-linear-gradient(
  rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 100%
  );
}

HTML

<figure>
  <div class='overlay'></div>
  <img src='http://placekitten.com/300/300' />
</figure>

基于 cmets 更新。

【讨论】:

  • 挺好看的,就是图片不透明
  • 是的,我已经想到了,但问题是你可以“淡出它”,例如,如果你有黑色背景,你可以使用这个方法。但它并没有解决真正的问题。
  • 我已经更新了,但不是很成功,因为现在你几乎看不到图像了,哈哈!
猜你喜欢
  • 2014-07-09
  • 2020-11-22
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-19
  • 2011-10-16
  • 2016-07-04
相关资源
最近更新 更多