jquery - CSS :hover - How to get lower DIVs to :hover as well?

标签 jquery css

Here是一个例子。我正在寻找光标所在的行和列以显示 :hover 属性。有没有办法在不需要 javascript 的情况下做到这一点?如果没有,在 jQuery 中是否有一种简单的方法可以对任意数量的行/列执行此操作?

最佳答案

css 不行,因为 css 只有一个元素被悬停(来自重叠的非嵌套元素)。

jQuery 可以提供帮助,但并非微不足道..

一个粗略的实现是

  • 向元素添加 .row.col 类(适当)
  • 将自定义事件绑定(bind)到那些事件,其处理程序会检查鼠标坐标是否在其框内并设置/取消设置悬停状态
  • 当鼠标在行和列的容器内移动时(您应该将它们包裹在一个中),创建一个事件(我们绑定(bind)到行和列的自定义类型) 并全局触发

html

<div id="container">
    <div id="row1" class="row"></div>
    <div id="row2" class="row"></div>
    <div id="col1" class="col"></div>
    <div id="col2" class="col"></div>
</div>

javascript

$('.col, .row').bind('intersect',function(e){
    var $me = $(this);
    var pos = $me.offset();
    var size = {w:$me.width(), h:$me.height()};

    if ( e.pageX > pos.left && e.pageY > pos.top && e.pageX < pos.left + size.w && e.pageY < pos.top + size.h )
    {
        $me.addClass('hover');
    }
    else if ($me.is('.hover'))
    {
        $me.removeClass('hover');
    }
});

$('#container').mousemove(function(e){
    var evt = jQuery.Event('intersect');
    evt.pageX = e.pageX;
    evt.pageY = e.pageY;
    $.event.trigger(evt);
});

演示: http://jsfiddle.net/gaby/7V8AN/

关于jquery - CSS :hover - How to get lower DIVs to :hover as well?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587703/

相关文章:

javascript - 向下滚动时动画不工作

javascript - 如何根据父元素的大小制作动态字体大小?

javascript - Jquery Selector 特定元素的父级

html - css id vs class,一些想法

javascript - 向 div 添加 onclick 事件

javascript - 如何使用 div 制作 40x40 的网格?

ruby-on-rails - 移动 CSS 缩略图边框

javascript - 单击后,在 jQuery 上反转动画(显示/隐藏)

html - 无法在 div 元素中放置 iframe - HTML 和 CSS

javascript - 如何显示不是图案的对 Angular 线背景图像