强制元素状态悬停在另一个悬停元素的函数中 / jQuery
Force element state hover in function of another hovered element / jQuery
我看到了很多关于状态悬停和 jQuery 的事情,但对我的问题一无所知。
当另一个 class 为 :hover
时,我想强制 class 变为 :hover。
很难在这里解释我的代码:
$(document).mousemove(function() {
if($('.h').is(':hover')){
$('.h .btn-1e').trigger('mousover');
}
});
事实是第二次 class 悬停有点复杂,我无法通过 addClass
/ removeClass
完成(悬停包括 :after
东西,动画等..)
感谢您的帮助,抱歉我的英语不好!
我通常触发这样的事件:
$(document).mousemove(function() {
if($('.h').is(':hover')){
$('.h .btn-1e').mouseover();
}
});
你试过了吗?
我会这样做:
定义你自己的新悬停class(我知道你写过,你的悬停css很复杂但是你当然可以用悬停class代替你的悬停,在这里你也可以添加 :after ...):
.class1,
.class2 {
width: 40px;
height: 40px;
margin: 30px;
background-color: gray;
}
/* your element has an additional hover class */
.class1.hover,
.class2.hover {
background-color: red;
}
现在在悬停事件函数中设置悬停 class jquery:
$(".class1, .class2").hover(function() {
//mouseenter
$(this).addClass("hover");
}, function(){
//mouseleave
$(this).removeClass("hover");
});
现在你可以说,当鼠标悬停在 class1
元素上时,所有 class2
元素都应该变为悬停状态(即你的悬停 class):
$(".class1").mouseenter(function() {
//on hover class1 force hover state to class2
$(".class2").mouseenter();
}).mouseleave(function() {
//remove it on mouseleave
$(".class2").mouseleave();
});
我给你做了一个 jsfiddle 来玩:https://jsfiddle.net/0txLn21c/1/
有关更多信息,您可以阅读 API:
https://api.jquery.com/mouseover/
我希望,这可以帮助你,我不知道你的代码,但我认为在你的情况下使用悬停 class 并非不可能。例如,您可以将鼠标悬停 class 设为 :after
元素或动画:
.class1.hover:after {
/* content, animations ... */
}
我看到了很多关于状态悬停和 jQuery 的事情,但对我的问题一无所知。
当另一个 class 为 :hover
时,我想强制 class 变为 :hover。
很难在这里解释我的代码:
$(document).mousemove(function() {
if($('.h').is(':hover')){
$('.h .btn-1e').trigger('mousover');
}
});
事实是第二次 class 悬停有点复杂,我无法通过 addClass
/ removeClass
完成(悬停包括 :after
东西,动画等..)
感谢您的帮助,抱歉我的英语不好!
我通常触发这样的事件:
$(document).mousemove(function() {
if($('.h').is(':hover')){
$('.h .btn-1e').mouseover();
}
});
你试过了吗?
我会这样做:
定义你自己的新悬停class(我知道你写过,你的悬停css很复杂但是你当然可以用悬停class代替你的悬停,在这里你也可以添加 :after ...):
.class1,
.class2 {
width: 40px;
height: 40px;
margin: 30px;
background-color: gray;
}
/* your element has an additional hover class */
.class1.hover,
.class2.hover {
background-color: red;
}
现在在悬停事件函数中设置悬停 class jquery:
$(".class1, .class2").hover(function() {
//mouseenter
$(this).addClass("hover");
}, function(){
//mouseleave
$(this).removeClass("hover");
});
现在你可以说,当鼠标悬停在 class1
元素上时,所有 class2
元素都应该变为悬停状态(即你的悬停 class):
$(".class1").mouseenter(function() {
//on hover class1 force hover state to class2
$(".class2").mouseenter();
}).mouseleave(function() {
//remove it on mouseleave
$(".class2").mouseleave();
});
我给你做了一个 jsfiddle 来玩:https://jsfiddle.net/0txLn21c/1/
有关更多信息,您可以阅读 API:
https://api.jquery.com/mouseover/
我希望,这可以帮助你,我不知道你的代码,但我认为在你的情况下使用悬停 class 并非不可能。例如,您可以将鼠标悬停 class 设为 :after
元素或动画:
.class1.hover:after {
/* content, animations ... */
}