当前位置: 首页 > 知识库问答 >
问题:

jQuery CSS库悬停效果

慕容铭
2023-03-14

我在图像画廊遇到了一些麻烦。为了实现翻转效果,我有这个jQuery脚本:

var gallery=$("#galeria .one-third.column");

        var thumbs = $("#galeria .one-third.column a.fancybox img");        

        for (var c = 0, count = gallery.length; c < count; c++)
        {
            for (var i = 0, ii = thumbs.length; i < ii; i++)
            {
                if (thumbs[i].title && thumbs[i].title.length > 0)
                {   
                    var imgtitle = thumbs[i].title;
                    $(thumbs[i]).wrap('<div id="wrapperGal" />').after('<div class=\'caption\'><span class="title">' + imgtitle + '</span></div>').removeAttr('title');
                }                   
            }
        }
        $('#wrapperGal').hover(

            function()
            {
                $(this).find('img').toggleClass("galGrey");
                $(this).find('.caption').animate({opacity: "1"}, 300);
            },

            function()
            {
                $(this).find('img').removeClass("galGrey");
                $(this).find('.caption').animate({opacity: "0"}, 300);
            }       
        );

这样做的目的是找到图库,在图库图像周围应用一个包装器,当鼠标悬停在该项目上时,它会变为灰度,并且在现有图库的上方会出现一个标题div(带有.caption类)。该图库由9个缩略图组成,脚本将包装器和标题应用于所有现有的图库项目,但我只在第一个缩略图上获得悬停效果。

这是图库超文本标记语言的示例:

<div class="one-third column alpha">
        <a title="t1" class="fancybox" rel="group" href="../img/galeria/big1.jpg"><img src="../img/galeria/thumb1.jpg" title="t1"/></a>
        </div>

        <div class="one-third column">
        <a class="fancybox" rel="group" href="../img/galeria/big2.jpg"><img src="../img/galeria/thumb2.jpg" title="t2"/></a>
        </div>

        <div class="one-third column omega">
        <a class="fancybox" rel="group" href="../img/galeria/big3.jpg"><img src="../img/galeria/thumb3.jpg" title="t3"/></a>
        </div>

这是我得到的CSS:

    #wrapperGal{
    width:288px; 
    height:210px; 
    position:relative;
}

#wrapperGal img{
    -webkit-transition: 0.5s;  
    -moz-transition: 0.5s;  
    -o-transition: 0.5s;
    transition: 0.5s;
}

.galGrey{
    -webkit-filter: grayscale(100%);
}

.caption{
    height:190px;
    position:relative;
    top:20px;
    opacity:0;
    background-image:url(../img/galeria/thumbRoll.png);
}

.caption span.title{
    width:288px;
    height:190px;
    padding-top:157px;
    overflow:hidden;
    position:absolute;
    text-align:center;
}

知道为什么会这样吗?

共有1个答案

祁杰
2023-03-14

因为您使用了id作为包装器的选择器。相同的id不能应用于不同的元素。

工作演示:http://jsfiddle.net/indream/QxuPm/

    for (var c = 0, count = gallery.length; c < count; c++)
    {
        for (var i = 0, ii = thumbs.length; i < ii; i++)
        {
            if (thumbs[i].title && thumbs[i].title.length > 0)
            {   
                var imgtitle = thumbs[i].title;
                $(thumbs[i]).wrap('<div class="wrapperGal" />').after('<div class=\'caption\'><span class="title">' + imgtitle + '</span></div>').removeAttr('title');
            }                   
        }
    }
    $('.wrapperGal').hover(

        function()
        {
            $(this).find('img').toggleClass("galGrey");
            $(this).find('.caption').animate({opacity: "1"}, 300);
        },

        function()
        {
            $(this).find('img').removeClass("galGrey");
            $(this).find('.caption').animate({opacity: "0"}, 300);
        }       
    );
 类似资料:
  • 我在IE上的css悬停有问题。 简化;我基本上有一个容器div,它将在悬停时显示一个小的div,里面有一些标记中选择一个,:hover由于某种原因将不再工作,div将消失。 在chrome/firefox等中尝试此示例以查看所需的结果&然后在IE11中再试一次以查看问题所在。 null null

  • 当前的效果是悬停时会有伸长的下划线, 但是会有一个问题, 只能做一行 如果我把p标签结构改成如下 那么如何在悬停时让每一行都出现线条?

  • 问题内容: 我使用CSS更改了表格的悬停颜色 在Chrome和Firefox中可以正常工作,但在Internet Explorer 8中不会发生悬停效果。 有没有办法使这种效果也可以与IE8一起使用? 问题答案: 这 应该 很好地工作在IE8。 黑暗中的刺伤: 确保您有一个doctype作为触发标准模式的HTML的第一行,例如: 在Quirks模式下,IE仿真5.5版,除之外的其他元素均不支持。

  • 问题内容: 我试图做一个简单的CSS下拉菜单。当您将鼠标悬停在链接上时,我无法实现下拉子菜单。以下是我的HTML和CSS规则,谢谢。 问题答案: 尝试这个: 问题是您的菜单ul是可见的(始终),但是由于this规则的选择器,所以li里面的li是(始终)不可见。 请记住,visible:hidden隐藏元素,但仍在DOM中占用空间,而display:none隐藏元素并将其从页面元素流中移除 另外,您

  • 问题内容: 有时,我可以选择使用CSS元素:悬停或JavaScript onmouseover来控制页面上html元素的外观。考虑以下情况,其中div包装了输入 我希望输入将鼠标光标悬停在div上时更改背景色。CSS方法是 JavaScript方法是 每种方法的优点和缺点是什么?CSS方法是否适用于大多数Web浏览器?JavaScript比CSS慢吗? 问题答案: :hover的问题是IE6仅在链

  • 问题内容: 所以我有2个,彼此一样,像这样 我想改变的时候我悬停。 但是我希望悬停时再次恢复正常。 当我将鼠标悬停在深蓝色区域上时,我希望不是那么深蓝色的区域保持不是那么深蓝色,而不是变成白色。 我想保持这种结构。而且我不想要JavaScript解决方案(我知道JavaScript解决方案,但我想保留纯CSS)。 问题答案: .parent {