更改“;悬停“;或;主动的;使用JavaScript的元素的属性

更改“;悬停“;或;主动的;使用JavaScript的元素的属性,javascript,css,html,Javascript,Css,Html,我的页面上有一个元素,如果用户将鼠标悬停在该元素上或单击该元素,则该元素具有不同的样式。通常,图像是雪花。当鼠标位于其上方时,雪花图像将替换为相同的发光蓝色雪花,当其处于活动状态时,图像将替换为相同的发光雪花,但略小。这会产生一种错觉,即雪花在悬停时发光,在单击鼠标时缩小 但是,我想让雪花根据分数改变它的外观。这就是我所拥有的: var snowflakeBG = document.getElementById("MainSnowFlake"); changeFlakeImage = func

我的页面上有一个元素,如果用户将鼠标悬停在该元素上或单击该元素,则该元素具有不同的样式。通常,图像是雪花。当鼠标位于其上方时,雪花图像将替换为相同的发光蓝色雪花,当其处于活动状态时,图像将替换为相同的发光雪花,但略小。这会产生一种错觉,即雪花在悬停时发光,在单击鼠标时缩小

但是,我想让雪花根据分数改变它的外观。这就是我所拥有的:

var snowflakeBG = document.getElementById("MainSnowFlake");

changeFlakeImage = function(){
    if (mainScore >= 100){
        snowflakeBG.style.backgroundImage = "url(Images/Snowflake100BG.png)";
    }

当用户的分数达到100分时,用“snowflake100BG”替换普通雪花效果很好。问题是,我不知道如何同时更改元素:hover和:active。有人能解释一下吗?

你不能用javascript更改CSS伪类,只需使用具有不同CSS的类,然后添加和删除类即可。重复:你能添加另一个类,例如,.snowflake100,然后覆盖CSS文件中的所有样式吗?@adeneo不能直接,但你可以自己,这是一个有点老套的解决方案。@Teemu-的确,但这个答案很糟糕,只需在头部插入一个样式标记,覆盖当前样式,并给该样式标记一个ID,这样它就可以很容易地被删除,而不是访问和更改样式表,但再次,只使用类会更容易。而且,上面没有一个是针对CSS psuedo类的,因为这是不可能做到的。