使用javascript从图像中删除灰度css过滤器
removing greyscale css filter from images with javascript
我正在尝试循环浏览一些图像,并一次从中删除一个过滤器。
var h = 0;
function removeGreyscale() {
document.images[h].style.webkitfilter = "grayscale(0)";
document.images[h].style.filter = "grayscale(0)";
h += 1;
if (h === 8) {
h = 0;
}
}
setInterval(removeGreyscale, 3000);
此代码当前不起作用。
看起来您需要将webkitFilter
属性中的"f"大写:
document.images[h].style.webkitFilter = "grayscale(1)";
document.images[h].style.filter = "grayscale(1)";
Chrome仍然需要filter
属性的-webkit
前缀,但它应该已经在Firefox中工作了。
如果你想在元素上循环,从当前元素中删除过滤器,并将其添加回上一个元素,那么你可以使用以下方法:
i % images.length
-这将获得当前元素的索引,然后在i
超过图像数时重置回0
。(curr - 1 < 0 ? images.length : curr) - 1
-同样,这将通过从当前索引中减去1
来获得前一个元素,或者如果索引是-1
,则从图像总数中减去1
。
显然,在这里添加/删除/切换类并避免内联样式会更好,但尽管如此,这还是适用于示例目的:
var images = document.querySelectorAll('img'),
i = 0;
function removeGreyscale() {
var curr = i % images.length,
prev = (curr - 1 < 0 ? images.length : curr) - 1;
// Remove grayscale filter from the current element
images[curr].style.webkitFilter = "grayscale(0)";
images[curr].style.filter = "grayscale(0)";
// Add grayscale filter to the previous element
images[prev].style.webkitFilter = "grayscale(1)";
images[prev].style.filter = "grayscale(1)";
i++;
}
setInterval(removeGreyscale, 1000);
img {
-webkit-filter: grayscale(1);
filter: grayscale(1);
}
<img src="//placehold.it/200/f00" />
<img src="//placehold.it/200/0f0" />
<img src="//placehold.it/200/00f" />
CSS专用解决方案:http://jsfiddle.net/t2zaf1fk/2/
HTML:
<img src="//placehold.it/200/f00" />
<img src="//placehold.it/200/0f0" />
<img src="//placehold.it/200/00f" />
CSS:
img {
-webkit-animation: fade 3s linear 0 infinite;
-webkit-filter: grayscale(1);
}
img:nth-child(1) {
-webkit-animation-delay:1s;
}
img:nth-child(2) {
-webkit-animation-delay:2s
}
@-webkit-keyframes fade {
0% {
-webkit-filter: grayscale(1);
}
65% {
-webkit-filter: grayscale(1);
}
66% {
-webkit-filter: none;
}
100% {
-webkit-filter: none;
}
}
相关文章:
- JS-如何将图像对象转换为灰度并显示
- 如何在InDesign中使用ExtendScript更改彩色灰度图片的色样
- 悬停时颜色变为灰度在IE11中不起作用
- 显示灰度的 NVD3 图表
- Javascript无符号短灰度图像
- 画布-更改网页上所有图像的颜色(例如灰度)
- 如何将图片动画化为灰度
- 鼠标悬停.js加载灰度图像
- 如何在IE中将灰度和反转效果与SVG滤镜相结合
- 如何在“当前页面”中使用JavaScript更改图像的灰度
- 将图像转换为灰度跟随指针
- 如何将灰度脚本应用于动态加载的图像
- 使用javascript从图像中删除灰度css过滤器
- 如何在CSS/JAVASCRIPT中将图像转换为灰度
- 使用JavaScript确定图像是灰度还是彩色
- 画布:将图像转换为灰度
- 如何将每个像素为8位的灰度图像转换为每个像素仅具有3位表示的图像
- 使用JavaScript为类添加灰度特效
- 如何在Node.js中将灰度图像矩阵转换为图像
- 如何制作这个对象.runtimestyle.filter='为支持在firefox浏览器中应用灰度