简体   繁体   English

使用DOM元素定义悬停属性

[英]Define hover attributes with DOM elements

I'm working on a Chrome extension which displays a dynamically loaded popup. 我正在使用一个Chrome扩展程序,该扩展程序显示动态加载的弹出窗口。 User can change settings to choose its color. 用户可以更改设置以选择其颜色。 My issue is that I would like to change some :hover attributes of popup's elements, but I don't find how. 我的问题是我想更改一些popup元素的:hover属性,但我找不到如何做。

My current code: 我当前的代码:

var myDiv = document.createElement('a');
myDiv.style.background = myIcon;
myDiv.style.backgroundImage = myURL;

What I would like to add (not working code atm): 我要添加的内容(不工作代码atm):

myDiv.hover.style.backgroundColor = myColor;

Thank for help. 感谢您的帮助。

You can't set styles for pseudoclasses with JavaScript. 您无法使用JavaScript为伪类设置样式。 Instead, you must define them with CSS. 相反,您必须使用CSS定义它们。 You can use JavaScript to dynamically add CSS to a page, though: 但是,您可以使用JavaScript将CSS动态添加到页面:

var style = document.createElement("style");
style.appendChild(
    document.createTextNode("some-selector:hover { /*...*/ }")
);
document.querySelector("head").appendChild(style);

...or similar. ...或类似。

Here's an example adding an element with class foo to a document, along with dynamically-defined styles for it: 这是一个向文档添加类为foo的元素的示例,以及为其动态定义的样式:

 var foo = document.createElement("div"); foo.className = "foo"; foo.innerHTML = "This is foo, hover me"; document.body.appendChild(foo); var style = document.createElement("style"); // Pick a color at random var color = ["red", "blue", "green"][Math.floor(Math.random() * 3)]; style.appendChild( document.createTextNode( ".foo:hover { background-color: " + color + " }") ); document.querySelector("head").appendChild(style); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM