在鼠标进入和离开 canvas 形状时添加和删除 类
Adding and removing classes on mouse enter and leave on canvas shape
我试图在鼠标悬停在某个元素上时向该元素添加 class,然后在鼠标离开时将其移除。它目前仅适用于在 js 中为其提供直接样式。
如下所示,我尝试了各种方法来做到这一点,但都遇到了一些问题。只有直接的样式更改才有效。在鼠标离开时,我做同样的事情,但删除 class。鼠标悬停并离开检查 canvas 元素。
poly.on('mouseover', function () {
this.opacity(1);
layer.draw();
$('.' + this.name()).css({ backgroundColor: "#ffcc00" });
//$('.' + this.name()).classList.add("textboxhighlight");
//$('.' + this.name()).className += " textboxhighlight";
//$('.' + this.name()).addClass("textboxhighlight");
//$('.' + this.name()).setAttribute("class", "textboxhighlight");
});
我不确定问题出在哪里,因为我厌倦了添加 class 所有这些问题的各种方法。仅使用 this.addClass
是行不通的,因为它需要以 $('.' + this.name())
开头,否则代码中的任何内容都不起作用,甚至不强制样式部分。 $('.' + this.name())
引用元素中与 poly.
同名的 class 名称
在css中:
.textboxhighlight {
background-color: #ffcc00;
}
感谢您的帮助。
如果您提供更多的代码来使用会更容易。下面的示例将说明如何在悬停时添加 class 并在离开元素时删除 class。
$('#element').hover(function(e) {
$(this).addClass('selected');
}, function(a) {
$(this).removeClass('selected');
});
.selected {
background-color: green;
}
<div id='element'>
element
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
当您不显示代码的 mouseenter/leave 部分时,很难说您的代码有什么问题。但这里有一个 类 的例子:
https://codepen.io/andeersg/pen/MOGqPQ
$('.el').mouseenter(function() {
$(this).addClass('el-hover');
});
$('.el').mouseleave(function() {
$(this).removeClass('el-hover');
});
可能您必须在 css class background-color: #red !important
中使用。请参阅工作示例 here
您可以在悬停事件上使用 toggleClass
$(".hoverclass").hover(function () {
$(this).toggleClass("hoverclass_toggle");
});
.hoverclass {
height: 72px;
width: 100%;
border: 1px solid #000;
}
.hoverclass_toggle {
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hoverclass">
<div class="item">
<div id="item1"> <i class="icon"></i>Test</div>
</div>
<div>
否则你可以做那个类型:
$(".hoverclass").hover(
function () {
$(this).addClass("result_hover");
},
function () {
$(this).removeClass("result_hover");
}
);
.hoverclass {
height: 72px;
width: 100%;
border: 1px solid #000;
}
.result_hover {
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hoverclass">
<div class="item">
<div id="item1">
<i class="icon"></i>Test
</div>
</div>
<div>
我试图在鼠标悬停在某个元素上时向该元素添加 class,然后在鼠标离开时将其移除。它目前仅适用于在 js 中为其提供直接样式。
如下所示,我尝试了各种方法来做到这一点,但都遇到了一些问题。只有直接的样式更改才有效。在鼠标离开时,我做同样的事情,但删除 class。鼠标悬停并离开检查 canvas 元素。
poly.on('mouseover', function () {
this.opacity(1);
layer.draw();
$('.' + this.name()).css({ backgroundColor: "#ffcc00" });
//$('.' + this.name()).classList.add("textboxhighlight");
//$('.' + this.name()).className += " textboxhighlight";
//$('.' + this.name()).addClass("textboxhighlight");
//$('.' + this.name()).setAttribute("class", "textboxhighlight");
});
我不确定问题出在哪里,因为我厌倦了添加 class 所有这些问题的各种方法。仅使用 this.addClass
是行不通的,因为它需要以 $('.' + this.name())
开头,否则代码中的任何内容都不起作用,甚至不强制样式部分。 $('.' + this.name())
引用元素中与 poly.
在css中:
.textboxhighlight {
background-color: #ffcc00;
}
感谢您的帮助。
如果您提供更多的代码来使用会更容易。下面的示例将说明如何在悬停时添加 class 并在离开元素时删除 class。
$('#element').hover(function(e) {
$(this).addClass('selected');
}, function(a) {
$(this).removeClass('selected');
});
.selected {
background-color: green;
}
<div id='element'>
element
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
当您不显示代码的 mouseenter/leave 部分时,很难说您的代码有什么问题。但这里有一个 类 的例子: https://codepen.io/andeersg/pen/MOGqPQ
$('.el').mouseenter(function() {
$(this).addClass('el-hover');
});
$('.el').mouseleave(function() {
$(this).removeClass('el-hover');
});
可能您必须在 css class background-color: #red !important
中使用。请参阅工作示例 here
您可以在悬停事件上使用 toggleClass
$(".hoverclass").hover(function () {
$(this).toggleClass("hoverclass_toggle");
});
.hoverclass {
height: 72px;
width: 100%;
border: 1px solid #000;
}
.hoverclass_toggle {
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hoverclass">
<div class="item">
<div id="item1"> <i class="icon"></i>Test</div>
</div>
<div>
否则你可以做那个类型:
$(".hoverclass").hover(
function () {
$(this).addClass("result_hover");
},
function () {
$(this).removeClass("result_hover");
}
);
.hoverclass {
height: 72px;
width: 100%;
border: 1px solid #000;
}
.result_hover {
background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hoverclass">
<div class="item">
<div id="item1">
<i class="icon"></i>Test
</div>
</div>
<div>