如何以编程方式触发bootstrap的鼠标悬停效果

时间:2014-03-06 22:27:34

标签: javascript css twitter-bootstrap

在Twitter bootstrap中,一些元素变得“灰白”"当鼠标悬停在它们上面时。 buttonslinked list group项都是如此。这里有两个例子:http://imgur.com/a/ABhkT#0

可以通过编程方式触发此效果吗?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:2)

是,使用'onmouseover'属性。它与'onclick'非常相似,除了显然是为了悬停。

与'onclick'一样,你必须包含一个java脚本函数,它将改变该元素的css样式。

根据您尝试产生此效果的内容,您可以将其直接放入作为对象的标记中,也可以使用<span></span>

例如:

<div onmouseover="fade()">

    <p>text to fade</p>

</div>

Javascript:
    function fade(){
        code to change style
    }

应该是直截了当的,这会淡化div中的所有内容(包括背景)

答案 1 :(得分:2)

好的,我明白了。

如果效果是由css类引起的,那么可以简单地将该类应用于元素,如下所示:

$('<my_element>').addClass('bootstrapMouseoverGrey')

但这不起作用,因为效果不是由类引起的。它是由一个伪类造成的。无法以编程方式添加伪类。

一种解决方法是创建一个新的实际类,其定义与伪类完全相同。在我的例子中,伪类是a.list-group-item:hover,在bootstrap.css中定义。

a.list-group-item:hover,
a.list-group-item:focus {
  text-decoration: none;
  background-color: #f5f5f5;
}

我编辑了bootstrap.css来创建一个新的(实际)类bootstrapMouseoverGrey,其定义与伪类相同。

a.list-group-item:hover,
a.list-group-item:focus,
.bootstrapMouseoverGrey {
  text-decoration: none;
  background-color: #f5f5f5;
}

现在,我可以使用答案顶部的行将此类添加到元素中。这给了我想要的结果。像魅力一样工作!

答案 2 :(得分:1)

使用jQuery:

var event = jQuery.Event('<event_name>');
event.stopPropagation();
$('<selector>').trigger(event);

取自docs