将鼠标悬停在link,图片灰度滤镜
Hover over link, image grayscale filter
我有一张图片,上面有一个 link。当我将鼠标悬停在 link 上时,图像必须为灰度。这是屏幕截图(彩色图像)。所以当我将鼠标悬停在 'BEKIJK REALISATIES' 上时,图像(在背景中)必须是灰度的。
我在 CMS concrete5 工作,所以编辑 html 不是一个选项(限制)。
这是 javascript 中的代码(不起作用)。
$(document).ready(function() {
$(".link1").mouseenter(function() {
$(".image1").css.style.filter = "grayscale(1)";
});
});
编辑:这里是 html 和 css
.link1 a{
padding-top: 5px;
padding-bottom: 5px;
padding-left: 15px;
padding-right: 15px;
display: inline-block;
margin-right: 10px;
margin-left: 10px;
font-size: 15px !important;
background-color: #3c3c3b;
color: black !important;
}
.link1 {
margin-top: -120px;
position: relative;
margin-bottom: 82px;
}
.image1:hover{
-ms-filter: grayscale(1);
-webkit-filter: grayscale(1);
-moz-filter: grayscale(1);
-o-filter: grayscale(1);
filter: grayscale(1);
}
<div class="col-sm-3">
<div class="image1">
<a href="http://grafomantestsite2.be/index.php/realisaties">
<img src="http://grafomantestsite2.be/application/files/6314/4161/6181/realisatie1.png" alt="realisatie1.png" width="401" height="269" class="ccm-image-block img-responsive bID-83">
</a>
</div>
<div class="link1">
<p><a href="http://grafomantestsite2.be/index.php/realisaties">BEKIJK REALISATIES</a>
</p>
</div>
</div>
鉴于您无法更改 html,因此使用纯 css 来完成它是一个技巧(因为我不知道 link1 是如何根据 image1 构建的)。也就是说,this 是您想要的工作 fiddle。
它使用跨浏览器的方式来执行此操作,取自 here,它使用 css 类:
img.grayscale {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+, Firefox on Android */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
}
和
img.grayscale.disabled {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
-webkit-filter: grayscale(0%);
}
并像这样实现它:
$(document).ready(function() {
$(".link1")
.mouseenter(function() {
$(".image1").addClass('grayscale').removeClass('disabled');
})
.mouseleave(function() {
$(".image1").addClass('disabled');
});
});
试试这个 JSFiddle http://jsfiddle.net/ujw9opob/
$(document).ready(function() {
$(".link1").mouseenter(function() {
$("img").addClass("addingGrayScale");
});
$(".link1").mouseleave(function() {
$("img").removeClass("addingGrayScale");
});
});
CSS
.addingGrayScale {
-webkit-filter: grayscale(1); /* Webkit */
filter: gray; /* IE6-9 */
filter: grayscale(1); /* W3C */
}
我有一张图片,上面有一个 link。当我将鼠标悬停在 link 上时,图像必须为灰度。这是屏幕截图(彩色图像)。所以当我将鼠标悬停在 'BEKIJK REALISATIES' 上时,图像(在背景中)必须是灰度的。
我在 CMS concrete5 工作,所以编辑 html 不是一个选项(限制)。
这是 javascript 中的代码(不起作用)。
$(document).ready(function() {
$(".link1").mouseenter(function() {
$(".image1").css.style.filter = "grayscale(1)";
});
});
编辑:这里是 html 和 css
.link1 a{
padding-top: 5px;
padding-bottom: 5px;
padding-left: 15px;
padding-right: 15px;
display: inline-block;
margin-right: 10px;
margin-left: 10px;
font-size: 15px !important;
background-color: #3c3c3b;
color: black !important;
}
.link1 {
margin-top: -120px;
position: relative;
margin-bottom: 82px;
}
.image1:hover{
-ms-filter: grayscale(1);
-webkit-filter: grayscale(1);
-moz-filter: grayscale(1);
-o-filter: grayscale(1);
filter: grayscale(1);
}
<div class="col-sm-3">
<div class="image1">
<a href="http://grafomantestsite2.be/index.php/realisaties">
<img src="http://grafomantestsite2.be/application/files/6314/4161/6181/realisatie1.png" alt="realisatie1.png" width="401" height="269" class="ccm-image-block img-responsive bID-83">
</a>
</div>
<div class="link1">
<p><a href="http://grafomantestsite2.be/index.php/realisaties">BEKIJK REALISATIES</a>
</p>
</div>
</div>
鉴于您无法更改 html,因此使用纯 css 来完成它是一个技巧(因为我不知道 link1 是如何根据 image1 构建的)。也就是说,this 是您想要的工作 fiddle。
它使用跨浏览器的方式来执行此操作,取自 here,它使用 css 类:
img.grayscale {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 10+, Firefox on Android */
filter: gray; /* IE6-9 */
-webkit-filter: grayscale(100%); /* Chrome 19+, Safari 6+, Safari 6+ iOS */
}
和
img.grayscale.disabled {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'1 0 0 0 0, 0 1 0 0 0, 0 0 1 0 0, 0 0 0 1 0\'/></filter></svg>#grayscale");
-webkit-filter: grayscale(0%);
}
并像这样实现它:
$(document).ready(function() {
$(".link1")
.mouseenter(function() {
$(".image1").addClass('grayscale').removeClass('disabled');
})
.mouseleave(function() {
$(".image1").addClass('disabled');
});
});
试试这个 JSFiddle http://jsfiddle.net/ujw9opob/
$(document).ready(function() {
$(".link1").mouseenter(function() {
$("img").addClass("addingGrayScale");
});
$(".link1").mouseleave(function() {
$("img").removeClass("addingGrayScale");
});
});
CSS
.addingGrayScale {
-webkit-filter: grayscale(1); /* Webkit */
filter: gray; /* IE6-9 */
filter: grayscale(1); /* W3C */
}