jquery 多个元素悬停时淡入淡出

标签 jquery hover fadein fadeout

我正在开发一个投资组合页面,并且希望使用 jquery 在用户将鼠标悬停在该项目上时在图像上淡入一些信息。

我对后端 jquery 的东西还很陌生,所以才开始动手。

我已经设法让淡入和淡出在单个 div 元素上工作,但我需要它为每个元素独立工作。我认为这需要某种更动态的代码,但我不知道从哪里开始。

如果您看下面,我有适用于一项的代码。当您将鼠标悬停在第一张图像上时,会出现 div。这是我需要的结构,因为真正的投资组合具有这个基本结构。我只需要代码即可使其适用于其他两个。实时网站中将会有多个鼠标悬停。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"     type="text/javascript"></script>
<title>Robs Test</title>
<style>
body{background:gray;}
div{position:relative;}
#box{
    position:relative;
    width:150px;
    height:150px;
    float:left;
    display:block;
    background:black;
    margin-right:20px;
}
#boxover{
    position:absolute;
    top:10px;
    left:0px;
    width:100%;
    height:20px;
    z-index:100;
    background:white;
    display:none;
}
</style>
<script type="text/javascript">
    $(function(){
        $('#box').hover(over, out);
    });

function over(event)
{
    $('#boxover').fadeIn(2000);
    $('#boxover').css("display","normal");
}
function out(event)
{
    $('#boxover').fadeOut(2000);
}
</script>

</head>

<body>
<a href="#" id="box"><img src="anyimage.jpg" alt="test" width="150" height="150" /><div id="boxover">hello</div></a>
<a href="#" id="box"><img src="anyimage.jpg" alt="test" width="150" height="150" /><div id="boxover">there</div></a>
<a href="#" id="box"><img src="anyimage.jpg" alt="test" width="150" height="150" /><div id="boxover">rob</div></a>

</body>

</html>

如果有人可以向我展示如何让每个人独立工作,那就太好了。

我猜有像 lightbox 这样的 rel 属性?

我很高兴为每个图像提供单独的 id/rel。我只是不想复制 css。

希望这是有道理的:)

好的,我已经更新了,但还是不行。我可以看到发生了什么,但不确定让它工作的确切语法。

这是我的新代码:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script>
<title>Robs Test</title>
<style>
body{background:gray;}
div{position:relative;}
.box{
    position:relative;
    width:150px;
    height:150px;
    float:left;
    display:block;
    background:black;
    margin-right:20px;
}
.boxover{
    position:absolute;
    top:10px;
    left:0px;
    width:100%;
    height:20px;
    z-index:100;
    background:white;
    display:none;
}
</style>
<script type="text/javascript">
    $(function(){
        $('.box').hover(over, out);
    });


    function over(event){
        var over_id = '#box_over_' + $(this).attr('id').replace('over_','');
        $(over_id).fadeIn(2000);
    }, 
    function out(event) {
        var over_id = '#box_over_' + $(this).attr('id').replace('over_','');
        $(over_id).fadeOut(2000);
    }

</script>

</head>

<body>
<a href="#" class="box" id="over_1"><img src="pier.jpg" alt="test" width="150" height="150" /><div id="box_over_1" class="boxover">hello</div></a>
<a href="#" class="box" id="over_2"><img src="pier.jpg" alt="test" width="150" height="150" /><div id="box_over_2" class="boxover">there</div></a>
<a href="#" class="box" id="over_3"><img src="pier.jpg" alt="test" width="150" height="150" /><div id="box_over_3" class="boxover">rob</div></a>


</body>

</html>

我想我已经快到了,因为伪逻辑是有道理的,但它仍然不起作用。

干杯

最佳答案

给你: http://jsfiddle.net/Mm66A/13/

请不要使用 ID 字段来命名事物“box,box,box”,使用“box”的类来表示每个项目的类型为“box”。您可以为每个盒子指定一个唯一的 ID。

关于jquery 多个元素悬停时淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8578307/

相关文章:

javascript - 从 C#(或 JS)将焦点设置为弹出窗口

jquery - 如何根据当前元素的属性设置 jQuery 插件选项?

html - Div的悬停倾斜

javascript - 如何使用js使导航菜单淡入?它从汉堡包图标中弹出,我希望它在打开时淡入,在关闭时淡出

IE 中的 jQuery fadeIn + fadeOut?

html - CSS淡入,即时隐藏

html - bootstrap-select 在 Bootstrap 下拉菜单中不起作用

jquery - 始终处于事件状态的 Bootstrap 下拉菜单

javascript - 修复 Buggy JQuery 动画

jQuery setInterval/悬停 : it works once, 但随后停止 setInterval