所以在我的网站上我创建了一个功能,当我将鼠标悬停在其中一个侧面按钮上时,中间树的图像会发生变化。您可以看到页面here.
动画工作正常,但现在我正在尝试使div中的背景图像响应。感谢这个其他jsfiddle,我能够使用以下CSS使原始背景图像响应:
#arvore {
background: url('http://vistacamisa.greenpeace.org.br/wp-content/uploads/2015/09/arvore_011.png');
background-size: contain;
background-repeat: no-repeat;
width: 100%;
height: 0;
padding-top: 92.7%;
}
问题是,这个CSS不适用于我悬停在按钮上时显示的图像,而且我已经找到了如何使其工作的障碍。任何想法或建议将不胜感激!
我使用以下jQuery:
<script type="text/javascript">
(function($){
$('.arvorehover').hover(function(){
$('#arvore').css({'background':'url('+ $(this).attr('target') +')'});
},function(){
$('#arvore').css({'background':''});
});
})(jQuery)
</script>
我的按钮有一个类.arvorehover,带树图像的div的id为#arvore。
非常感谢!
答案 0 :(得分:1)
使用以下方法在JavaScript中设置悬停背景时:
$('#arvore').css({'background':'url('+ $(this).attr('target') +')'});
...它为标记添加了一个样式属性:<div id="arvore" style="background:url(....)">
,它会覆盖整个CSS background
声明,然后将background-size
设置为auto
。您只需更改background-image
属性:
<script type="text/javascript">
(function($){
$('.arvorehover').hover(function(){
$('#arvore').css({'background-image':'url('+ $(this).attr('target') +')'});
},function(){
$('#arvore').css({'background-image':''});
});
})(jQuery)
</script>
或者,您可以通过在JavaScript中切换类来保持CSS中的样式:
<script type="text/javascript">
(function($){
$('.arvorehover').hover(function(){
$('#arvore').addClass('hover');
},function(){
$('#arvore').removeClass('hover')
});
})(jQuery)
</script>
然后在你的CSS中:
#arvore.hover {
background-image: url("some-url");
}