我想用颜色选择器更改悬停颜色。
这是我曾经尝试过的:
// First Try
$("input[type=color]").change(function(e) {
var pickedColor = e.target.value;
// $("body").css("background-color", pickedColor);
$("div:hover").css("color", pickedColor);
});
// Second Try
$("input[type=color]").change(function(e) {
var pickedColor = e.target.value;
// $("body").css("background-color", pickedColor);
$(".hover").css("color", pickedColor);
});
$("div").hover(function() {
$(this).addClass("hover");
}, function() {
$(this).removeClass("hover");
});
body {
display: flex;
font-size: 30px;
font-family: Arial;
cursor: default;
}
div {
color: red;
padding: 10px;
}
div:hover {
color: orange;
}
.hover {
color: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>Hello</div>
<input type="color">
不幸的是,两者都不起作用。我想颜色选择器使它有点复杂。有人能帮我吗?
会非常感激的!
2条答案
按热度按时间sycxhyv71#
在第二个示例中(使用jquery
hover()
),您将.hover
类添加到div中,该示例运行良好,* 但是 * cssdiv:hover
优先,因此显示为橙色颜色是动态的(来自颜色选择器)(更新)问题意味着你不能使用css类(你可以,但是添加一个
<style>
元素有点麻烦:https://stackoverflow.com/a/21051833/2181514,但如果它可以多次更改,就不是真正可用的)。您也不能直接为
:pseudo
(如:hover
)元素设置样式。保留使用
.hover()
的选项。在这里,我没有使用全局变量表示颜色,而是将这两种颜色与默认的
orange
一起存储在data-
属性中-jquery可以在悬停时读取该属性34gzjxbg2#