如果将href设置为块,则鼠标悬停不起作用

时间:2012-04-16 17:23:13

标签: jquery html

所以我有3个图片需要链接到其他页面,并且它在悬停时淡入淡出。 但我注意到,一旦图像在CSS中的块中排列,jquery效果将被禁用。 和解决方案?

CSS:

div {
display: none;
width: 600px;
margin: auto;
}

.row_1 img{
    width: 300px;
    height: 300px;
}

.row_2 img{
    width: 150px;
    height: 150px;
}

.row_1,
.row_2{
    display: inline-block;
}

.row_2 img{
    display: block;
}
.row_1 img{
    display: block;
}

Html代码:

<div>



<h2>Blog</h2>




<div class ="row">

<span class ="row_1">
<a href="#"><img src="image/under.png" /></a>
</span>

<span class ="row_2">
<a href='#'><img src="image/under.png" /></a>
<a href="#"><img src="image/under.png" /></a>
</span>

</div>


</div>

jquery:

$(document).ready(function(){
     $('a').fadeTo(1,0.5);


  $('a').hover(
      function () {
       $(this).fadeTo('slow',1);
      }, 
      function () {
         $(this).fadeTo('slow',0.5);
      }
    );      

});

$(document).ready(function(){
$('div').fadeIn('slow');
});

2 个答案:

答案 0 :(得分:0)

display更改为block不应该有所作为。

我在这里粘贴你的代码,似乎有效:

http://jsfiddle.net/jtbowden/cG8c9/

您的问题可能在其他地方。你能在jsfiddle上重现吗?

另外,我不知道你是否在推广你的例子,但我会避免在选择器div上做任何jQuery。为主包装器提供一个ID并使用它。另外,在你的淡入淡出效果之前添加.stop(),否则如果你快速地鼠标移出你会得到骑行行为:

$(document).ready(function() {
    $('a').fadeTo(1, 0.5);
    $('#wrapper').fadeIn('slow');

    $('a').hover(function() {
        $(this).stop().fadeTo('slow', 1);
    }, function() {
        $(this).stop().fadeTo('slow', 0.5);
    });
});

演示:http://jsfiddle.net/jtbowden/cG8c9/1/

编辑:我在IE中进行了测试,发现淡入淡出功能根本无法在链接上运行。在这种情况下,您需要对图像进行淡入淡出:

$(document).ready(function() {
    $('img').fadeTo(1, 0.5);
    $('#wrapper').fadeIn('slow');

    $('a').hover(function() {
        $('img', this).stop().fadeTo('slow', 1);
    }, function() {
        $('img', this).stop().fadeTo('slow', 0.5);
    });

});

演示:http://jsfiddle.net/cG8c9/2/

答案 1 :(得分:0)

您可能希望更改悬停中的淡入淡出顺序,并定位图像而不是锚元素。进行此更改:

$('a').hover(
    function() {
        $('img',this).fadeTo('slow', 0.5);
    }, 
    function() {
        $('img',this).fadeTo('slow', 1);
});

<强> jsFiddle example