更改div不透明度,不包括一些div内容 - jQuery

时间:2010-09-17 09:56:31

标签: jquery hover opacity

我有几个.box div,包括短文本(<p>)和缩略图。当.box的任何部分悬停时,我正在尝试更改.box div中文本的不透明度,但我不希望图像受到影响。到目前为止,我有这个:

jQuery(document).ready(function(){
$(".box").fadeTo("fast", 0.6);

$(".box").hover(function(){
$(this).fadeTo("fast", 1.0); 
},function(){
$(this).fadeTo("fast", 0.6);
});
});

我知道这一定很简单,但我被困住了。谢谢你的帮助。

3 个答案:

答案 0 :(得分:1)

用户$(".box p")选择器

答案 1 :(得分:0)

使用.find()获取内部的<p>以应用淡入淡出,如下所示:

jQuery(function(){
  $(".box p").fadeTo("fast", 0.6);

  $(".box").hover(function(){
    $(this).find("p").fadeTo("fast", 1.0); 
  },function(){
    $(this).find("p").fadeTo("fast", 0.6);
  });
});

这使用$(".box p")最初仅淡化<p>元素,然后在悬停(对于整个框)中,我们在内部找到相同的<p>元素。如果你$(".box p").hover(...) {h}只悬停在<p>本身就行了。

答案 2 :(得分:0)

您可以将缩略图放在要尝试淡出的框之外,或者使用更精确的选择器,例如$('。box p')。取决于你想让盒子装饰本身褪色,还是仅仅是文字。

这可能也有效:

<div class="container">
    <img id="thumbnail" src="" style="float: left; /* or position abosolute"/>
    <div id="box">
        <p>text</p>
    </div>
</div>
<script type="text/javascript">
     $(document).ready(function() {
         // $('.box p').fadeIn('fast'); 
         // or:
         $('.box').fadeIn('fast');
     });
</script>