1 回答
TA贡献2065条经验 获得超14个赞
首先,您不需要编写自己的 JavaScript 来切换.active
按钮上的类。Bootstrap 有您可以使用的按钮插件:
<button type="button" class="btn btn-outline-secondary w-100" data-toggle="button" aria-pressed="false">1</button>
.active
当选择/取消选择按钮时,这会自动切换类。
jsfiddle演示: https://jsfiddle.net/davidliang2008/mfqyp8j3/6/
其次,当您选择一个按钮时,会发生两件事。Bootstrap 添加.active
(如果您使用按钮插件)和.focus
类:
.active
:为您提供与悬停按钮时相同的背景背景.focus
:在按钮周围添加阴影
当您单击其他位置时,只会.focus
删除类。这就是为什么您应该看到按钮充满了背景颜色,没有阴影,就像您将鼠标悬停在按钮上一样。
当您取消选择一个按钮但鼠标仍然指向它时,.active
类将被删除,但悬停效果仍然.focus
继续,使按钮看起来就像您没有取消选择它一样。
一旦鼠标移开,悬停效果就会消失,只剩.focus
下悬停效果。这就是为什么您应该看到按钮只有阴影。
如果你想进一步区分按钮的选择和取消选择状态,你可以编写CSS来禁用悬停效果,如果按钮是但.focus
不是.active
:
.selector .btn.focus:not(.active):hover {
color: inherit;
background-color: inherit;
border-color: inherit;
}
jsfiddle演示: https://jsfiddle.net/davidliang2008/mfqyp8j3/17/
Codepen演示: https://codepen.io/davidliang2008/full/yLJRZYy
添加回答
举报