悬停时删除和添加类
Removing and adding class on hover
我正在制作一组照片/文字。所有面板上都有一个覆盖颜色,除了第一个在页面加载时有一个活动类,它会删除覆盖。当您将鼠标悬停在第二个/第三个等面板上时,覆盖活动类将从第一个面板中删除并转到悬停的面板。
现在它仅在页面加载时处于活动状态,我似乎无法在悬停时将类从第一个div 转移到第二个div。
if ( $(".overlay:first") ){
$(".overlay:first").addClass("active");
}
else {
if ( $(".overlay:not(:first)").hover ){
$(".overlay:first").removeClass("active");
}
}
https://jsfiddle.net/egdkuh16/3/
没有必要为此使用 JavaScript 或 jQuery。它最好在带有:hover
伪选择器的 CSS 中使用。今天也容易多了。
.overlay:first-child {
background: white;
}
.overlay:first-child:hover {
background: gold;
}
如果你坚持使用jQuery,你可以试试这个
$(".overlay:first").on("mouseover", function() {
$(this).addClass("active");
}).on("mouseout", function() {
$(this).removeClass("active");
});
.active {
background: gold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="overlay">First overlay class</div>
<div class="overlay">Second overlay class</div>
这种方法非常不受欢迎
在jQuery中,你可以这样做:
$(document).ready(function() {
// Make the first active
$(".overlay:first").addClass("active");
// On hover remove all active classes from .overlay
// and add .active only to the one that is hovered
$(".overlay").hover(function() {
$(".overlay").removeClass("active");
$(this).addClass("active");
});
});
但理查德·汉密尔顿的答案要好得多,也干净得多。
你可以
使用 jQuery 的on
。例如:
$(".overlay:first").addClass("active");
$(".overlay").on("hover", function(){
$(this).addClass("active");
$(".overlay:first").removeClass("active")
});
相关文章:
- 根据Select值添加/删除表行
- 添加/删除类淡入淡出不起作用
- p5.js声音库:如何添加/删除p5.第5页中的短语().零件()
- 在django表单集中添加/删除表单的Javascript
- 添加/删除子元素
- 添加/删除/更改输入文本的部分值
- jQuery - 添加删除类 - 设置输入值
- 向具有唯一Id的表添加/删除行
- DateTimePicker:函数从minDate maxDate添加删除日期
- 由 JavaScript 控制的 CSS3 单向转换在按顺序添加/删除类时不起作用
- 添加/删除类在 Chrome 中对我不起作用
- JQuery 测试元素是可见的还是隐藏的,然后添加删除类
- Jquery切换和添加/删除
- 克隆字段上的“添加-删除”按钮
- (X-Editable)与(Select2标签)不工作,可以't填充当前标签并跟踪添加/删除的标签
- 添加/删除要与Jquery进行比较的产品
- 添加/删除类并使用Cookie记住所选内容
- 如何使用延迟添加/删除类
- 如何根据数组内容添加/删除数组中的元素
- 单击单选按钮,添加/删除表单元素的类