【问题标题】:Fade in fade out on mouse over/out鼠标悬停/移出时淡入淡出
【发布时间】:2012-11-19 20:15:06
【问题描述】:

例如,我有“div1”和“div2”。并且“div2”隐藏在“div2”后面,我想在 div2 中淡入淡出 de div1...
我该怎么做?
我看了这么多帖子,都没有给我任何结果...

<div id="news1">
    <table width="100%" height="145" border="0" cellpadding="0" cellspacing="0" class="newsBox">
        <tr>
            <td align="center">
                <table width="230" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td width="89" align="center" valign="top" class="shadow"><img src="images/news_03.jpg" width="89" height="89" /></td>
                        <td align="left" valign="top" class="espacoEsquerda">Duis felis magna, viverra ac dignissim at, mollis vitae felis.  Praesent eleifend dictum quam tempor lobortis.</td>
                    </tr>
                    <tr>
                        <td height="41" align="left" valign="bottom"><img src="images/news_10.jpg" width="35" height="35" /></td>
                        <td align="right" valign="bottom" class="readmore">read more »</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</div>

<div id="news1Over">
    <table width="100%" height="145" border="0" cellpadding="0" cellspacing="0" class="newsBoxOver">
        <tr>
            <td align="center">
                <table width="230" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td width="89" align="center" valign="top" class="shadow"><img src="images/news_03.jpg" width="89" height="89" /></td>
                        <td align="left" valign="top" class="espacoEsquerda">Duis felis magna, viverra ac dignissim at, mollis vitae felis.  Praesent eleifend dictum quam tempor lobortis.</td>
                    </tr>
                    <tr>
                        <td height="41" align="left" valign="bottom"><img src="images/news_11.jpg" width="35" height="35" /></td>
                        <td align="right" valign="bottom" class="readmoreOver">read more »</td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</div>

【问题讨论】:

  • 当您说“div1”和“div2”时,您的意思是“news1”和“news1Over”吗?一个到底是如何隐藏在另一个后面的?请出示您的 CSS。除了其中一张图片之外,这两个 div 似乎具有几乎相同的内容 - 从用户的角度来看,您实际上想要实现什么? (如果您只想在鼠标悬停在 div 中的任何位置时更改图像,则有比复制整个 div 更好的方法...)
  • 听起来您想要dialogmodal。有很多选项,其中大多数都支持动画。
  • 我想改变背景颜色,字体颜色,淡化!
  • @Vitor Cabral 在这种情况下,您可能需要查看 jQueryUI 动画事件。例如,您可以将文本从一种颜色变为另一种颜色。见stackoverflow.com/questions/11018483/…

标签: jquery


【解决方案1】:

我创建了一个 jsFiddle 供您使用。我使用 mouseevents 来触发淡入淡出。不知道这是否是你想要的,但它证明了这个概念。

它能满足你的需要吗?

http://jsfiddle.net/2yERV/6/

$(function() {
    $('#wrap').mouseenter(function() {
        $('#news1Over').fadeOut('slow', function() {
            // Animation complete.
        });
        $('#news1').fadeIn('slow', function() {
            // Animation complete.
        });
    })
    .mouseleave(function() {
        $('#news1Over').fadeIn('slow', function() {
            // Animation complete.
        });
        $('#news1').fadeOut('slow', function() {
            // Animation complete.
        });
    });
});               

【讨论】:

    【解决方案2】:

    通过适当的 CSS 定位,以及一些 jQuery 的.animation 的使用,这可以很容易。我制作了一个 jsFiddle 来展示使用 HTML 是多么容易,但是我做了 2 处细微的更改。我将“div1”和“div2”包装在“包装器 div”中,分别给出 3 个“类名”并相应地定位它们:包装器位于 relative 所以没有内部元素“浮动”,div1 是正常位置(默认在 div 标签上是静态的),并且 div2 是绝对定位的,因此它位于 div 1 上。然后我将 div 2 的不透明度设置为 0,并将其 z-index 也设置为 0,同时让 div1 保持正常z-index 为 1。z-index 只有在您希望某些项目可点击时才是真正的问题,否则,您可以一起忽略它(将通过第二个 jsFiddle 而不使用 z-indexing)。最后,我使用 jQuery 的 .hover() 来确定鼠标在包装元素上的位置,并使用 .stop.animate 组合来“淡入/淡出”两个内部 div。

    查看完整示例here

    没有z-indexinghere

    对 HTML 的细微改动

    <div id="news1wrapper" class="fade-wrapper">
        <div id="news1" class="fade-content">
            ...
        </div>
        <div id="news1Over" class="fade-cover">
            ...
        </div>
    </div>
    

    简单的 CSS

    .fade-wrapper {
        position: relative;
    }
    .fade-content {
        background: #FFF;
    }
    .fade-cover {
        background: #FFA;
        opacity: 0;
        position: absolute;
        top: 0;
        width: 100%;
    }
    

    一点点'o jQuery

    $(".fade-wrapper").hover(function(e) {
        $(this).children(".fade-content").stop().animate({ opacity: 0 }, 1500);
        $(this).children(".fade-cover").stop().animate({ opacity: 1 }, 1500);
    },
    function(e) {
        $(this).children(".fade-cover").stop().animate({ opacity: 0 }, 1500);
        $(this).children(".fade-content").stop().animate({ opacity: 1 }, 1500);
    });
    

    【讨论】:

    • 我已经有另一个 id 的 z-index 为 '1'...我可以再给一个 z-index 吗?
    • 是的,你可以使用任何你喜欢的 z-index,z-index 实际上只影响重叠的元素。例如,如果两个 div 的 z-index 为 1,但它们是并排的,那么它们是无效的,但是,如果一个 div 在另一个 div 的顶部并且 z-index 为 -1,那么下面的 div 将在顶部。理解? Here is more in-depth about Z-Indexing
    • 我明白……但是,仍然没有效果……什么也没有发生!!
    • 对不起我的愚蠢,但这是我在 html/css 的第一年:s
    猜你喜欢
    • 2018-03-26
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多