如何使用CSS3透明png中的外部对象?

我正在开发一个项目,在这个项目中,我需要在超过500张图片上进行修改,以提高hover效果的余辉 。 我将需要修改每个图像给外面的辉光。 这将是一个非常耗时的任务。

这是一个图像的例子。 所有的图像是透明的.png

在这里输入图像说明

是否有可能使用CSS3的任何技巧来给这个瓶子图像的外部效果?

这只是一个图像的一个例子,其他图像的大小和形状是不同的。

这可以使用filter(box-shadow)来完成。 看看http://demosthenes.info/blog/598/boxshadow-property-vs-dropshadow-filter-a-complete-comparison

这是一个演示http://jsfiddle.net/jaq316/EKNtM/

这里是代码

<style> .shadowfilter { -webkit-filter: drop-shadow(12px 12px 7px rgba(0, 0, 0, 0.5)); filter: drop-shadow(12px 12px 7px rgba(0, 0, 0, 0.5)); } .bottleimage { width: 500px; } </style> <img src="http://upload.wikimedia.org/wikipedia/commons/c/ce/Coca_Cola_Zero_bottle.png" class="shadowfilter bottleimage"/> 

你可以做的是在你的graphics程序中创build一个发光效果,然后在图像hover时应用它作为背景图像。 你将不得不为自己的每个图像发光,但它看起来非常酷。

编辑:我做了一个程序,将快速,轻松地为您创build发光的图像。 你可以在http://thedarkworld.net/projects/imgglow/下载;
希望这可以帮助。

这里有一个插件,我发现很早,做的PNG图像技巧…

用法:

启用发光并设置颜色和半径:

 $("#testimg").glow({ radius: "20", color:"green"}); 

禁用发光:

 $("#testimg").glow({ radius: "20", color:"green", disable:true }); 

要么

 $("#testimg").glow({ disable:true }); 

https://github.com/MisterDr/JQuery-Glow

如果你必须这样做500+的图像,我会做的是一个透明的巴宝瓶的反面的瓶子周围的羽化边缘,并奠定了在底部的背景颜色和瓶图像之间的DIV 。 这将使纯色背景颜色显现为淡入到反转瓶PNG中,所有您必须做的改变发光颜色都是改变CSS的值。

写一些jQuery让你inputhex值,然后设置;)

编辑*

问题解决了!

http://phillipjroth.com/stackoverflow/8693733/index.html

编辑CSS代码“background-color”的第19行,它将更新辉光。 PNG的质量很差,但你可以微调他们摆脱崎岖的边缘。

像馅饼一样容易。 您只需使用相同的图像两次,一个在另一个之上。

 <div class="container"> <img class="main" src="http://www.pngmart.com/files/2/Mario-PNG-Image.png" /> <img class="glow" src="http://www.pngmart.com/files/2/Mario-PNG-Image.png" /> </div> 

你只需要处理下面的图片,缩小一下,亮到白色,然后模糊。 然后你将不透明度设置为0,并在上面的图像hover时将其设置回1。

 .container { position:relative; background-color:#444444; width:600px; height:600px; } img { position:absolute; max-height:90%; top:50%; left:50%; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); transform-origin: 0 0; -webkit-transform-origin: 0 0; } img.main { z-index:2; } img.glow { z-index:1; transform: scale(1.01) translate(-50%, -50%); -webkit-transform: scale(1.01) translate(-50%, -50%); filter: brightness(0) invert(1) blur(5px); -webkit-filter: brightness(0) invert(1) blur(5px); opacity:0; } img.main:hover ~ img.glow { opacity:1; } 

没有任何Javascript的要求。

https://jsfiddle.net/nkq1uxfb/3/

其实你可以用CSS3filter来做到这一点。 只需将两个图像堆叠在一起,然后将以下样式应用于其中一个:

 -webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px); 

要改变其他图像的颜色,你可以使用其他filter,如色调旋转,sephia等

我喜欢用一些堆叠来产生这样的光芒。 第一张图片使用下面的CSSfilter规则:

 blur(5px) grayscale(1) sepia(1) saturate(10000%) invert(1) 

这给你一个比蓝色的基础“瓶”发光稍大。

然后在相同的坐标下加载图像的第二个副本,为透明的背景上的透明背景瓶提供类似的透明背景模糊的蓝色“光环”。

我发现一个简单的方法,如果你可以使用Photoshop的。

您可以在Photoshop中打开透明图像(example.png)并使用模糊工具。 然后模糊整个图像并保存为(example-hover.png)。

 <div id="img1"> <img src="images/example.png"> </div> #img1:hover{ background: url('images/example-hover.png') no-repeat 0px 0px;; }