【问题标题】:hover over one div, another div fades in and remains visible while user hovers over it将鼠标悬停在一个 div 上,另一个 div 淡入并在用户悬停在其上时保持可见
【发布时间】:2012-07-01 11:58:20
【问题描述】:

我有一个容器 div。在容器内部,除了文章的标题,还有一个隐藏的 div(位置:abolute,在文章标题旁边 & 容器 div 的“外部”),其中包含文章的图像和修剪后的文本。

我想要什么:用户将鼠标悬停在文章标题上:

<div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>

结果,弹出窗口

<div class="article_popup">

在文章的标题容器旁边淡入。

如果用户没有将鼠标悬停在弹出窗口上,弹出窗口会在 1 秒后淡出。 如果他这样做了,只要用户将鼠标悬停在弹出窗口上,popu 就会保持可见,然后在 1 秒后淡出。

问题:

-1- 有许多文章容器和弹出 div 共享同一个类,所以如果只有 1 个标题悬停,所有弹出窗口都会出现。

-2- 我已经尝试过这个和类似的解决方案:

(function ($) {
    $(document).ready(function(){
        $('.field-title').bind('mouseenter', function() {
        $('.article_popup').fadeIn();
        });
        $('.field-title').bind('mouseleave', function() {
        $('.article_popup').fadeOut();
        });
    });
}(jQuery));

但这不包括用户将鼠标悬停在弹出窗口本身上的情况。

更新:http://jsfiddle.net/zThP7/14/

这是我的 HTML(您可以看到许多嵌套的 div 具有相同的类):

<div class="container_block">
<table class="container_table">
    <tbody>
          <tr class="row-1">
                  <td class="col-1">
                        <div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>  
                        <div class="article_popup_container">
                            <div class="field-content">
                                <div class="article_popup">
                                    <div class="article_popup_photo"><a href="#"><img src="http://image_path"/></a></div>
                                    <div class="article_popup_text">Lorem Ipsum</div>
                                </div>
                            </div>  
                        </div>          
                  </td>
                  <td class="col-2">
                        <div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>  
                        <div class="article_popup_container">
                            <div class="field-content">
                                <div class="article_popup">
                                    <div class="article_popup_photo"><a href="#"><img src="http://image_path"/></a></div>
                                    <div class="article_popup_text">Lorem Ipsum</div>
                                </div>
                            </div>  
                        </div>        
                   </td>
          </tr>
          <tr class="row-2">
                  <td class="col-1">
                        <div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>  
                        <div class="article_popup_container">
                            <div class="field-content">
                                <div class="article_popup">
                                    <div class="article_popup_photo"><a href="#"><img src="http://image_path"/></a></div>
                                    <div class="article_popup_text">Lorem Ipsum</div>
                                </div>
                            </div>  
                        </div>        
                  </td>
                  <td class="col-2">
                        <div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>  
                        <div class="article_popup_container">
                            <div class="field-content">
                                <div class="article_popup">
                                    <div class="article_popup_photo"><a href="#"><img src="http://image_path"/></a></div>
                                    <div class="article_popup_text">Lorem Ipsum</div>
                                </div>
                            </div>  
                        </div>        
                  </td>
          </tr>
          <tr class="row-3">
                  <td class="col-1">
                        <div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>  
                        <div class="article_popup_container">
                            <div class="field-content">
                                <div class="article_popup">
                                    <div class="article_popup_photo"><a href="#"><img src="http://image_path"/></a></div>
                                    <div class="article_popup_text">Lorem Ipsum</div>
                                </div>
                            </div>  
                        </div>        
                  </td>
                  <td class="col-2">
                        <div class="field-title"><span class="field-content"><a href="#">Lorem Ipsum</a></span></div>  
                        <div class="article_popup_container">
                            <div class="field-content">
                                <div class="article_popup">
                                    <div class="article_popup_photo"><a href="#"><img src="http://image_path"/></a></div>
                                    <div class="article_popup_text">Lorem Ipsum</div>
                                </div>
                            </div>  
                        </div>        
                  </td>
          </tr>
      </tbody>
</table>

我更喜欢用自定义代码来解决这个问题,而不是建议的 jquery 插件,但如果它太复杂,一个功能性和跨浏览器兼容的插件就可以了。

【问题讨论】:

  • 如果您将代码放入jsfiddle,则不是 100% 关注您的问题,这可能会有所帮助。我认为您要查找的不是$('.article_popup'),而是使用$(this).find('.article_popup')
  • 我在最初的问题中添加了jsfiddle.net/zThP7/14。您建议的添加由于某种原因不起作用...

标签: jquery popup hover fadein fadeout


【解决方案1】:

您需要将弹出框移动到同一个容器内,这样您只需处理一个元素的鼠标移出。检查第一个,它至少会给你一个起点。 http://jsfiddle.net/zThP7/15/

【讨论】:

  • 谢谢你,完成了这项工作。更进一步,我怎样才能使弹出窗口跟随鼠标光标+在另一个弹出窗口被触发的情况下也使弹出过程停止?您可以在此处查看我正在寻找的功能示例:lesvosreport.gr(幻灯片下方,右侧文章列,侧边栏旁边)。
  • 动态淡入淡出的好解决方案
【解决方案2】:

我认为这就是您要搜索的内容;)

https://stackoverflow.com/a/1670561/472406

您唯一需要更改的是为弹出元素添加 mouseenter 事件并清除超时,并为弹出窗口的 mouseleave 添加超时以隐藏弹出窗口

由于在标题元素中,如果用户从弹出窗口转到标题,则必须清除超时,弹出窗口不会消失

【讨论】:

  • 感谢您的回答 - 我尝试了 swider 的方法,但似乎有所进展 - 如果我在当前使用的解决方案中遇到任何问题,我会尝试您的建议。
猜你喜欢
  • 2012-08-12
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
相关资源
最近更新 更多