Javascript 破坏 CSS 悬停

标签 javascript hover background-position

我遇到了一个问题:/ 我得到了一个 CSS 东西,它使悬停时背景位置发生变化。但是当我在 javascript 中运行一个改变悬停的函数后,CSS 停止工作。

这是函数:

function tree() {
var boxfb = document.getElementById('fb_box');
var boxtw = document.getElementById('twitter_box');
var boxsun = document.getElementById('sun_box');
var boxtree = document.getElementById('tree_box');
var btn = document.getElementById('hbtr');
if(boxtree.style.visibility == "hidden") {
    boxtw.style.visibility="hidden";
    boxfb.style.visibility="hidden";
    boxsun.style.visibility="hidden";
    boxtree.style.visibility="visible";
    btn.style.backgroundPosition="-150px -100px";
}
else {
    boxtree.style.visibility="hidden";
    btn.style.backgroundPosition="-150px 0";
}

住在http://enji.se (长按左上角的树)

最佳答案

因为您正在向您的元素添加“样式”属性,所以此“样式”属性中的任何内容都将覆盖您预定义的任何 CSS 设置(它具有优先权)。 在这种情况下,“btn.style.backgroundPosition="-150px 0";"通过直接将其添加到元素来覆盖“-150px -100px”的悬停样式。

我不确定你来这里的确切目的,而且可能有更简单的方法来做你正在做的事情——但我想这不是你来这里的原因……

因此,要解决您的问题,我会建议以下两件事之一:
1) 使用 javascript 而不是样式属性添加/删除类
-,作为快速修复-
2) 将“!important”添加到样式表的第 343 行,如下所示:

.tree:hover {
    background-position: -150px -100px !important;
}

关于Javascript 破坏 CSS 悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6005403/

相关文章:

javascript - jQuery 迭代表列和行来构建列表

javascript - 最初我连接到phonegap的数据库,但是当我移动到第二个html页面时我无法连接

jquery - Cufon + jQuery 悬停不工作

javascript - 如何在图片的两个区域悬停?

html - 如何使用图像 :fixed, z-index 和滚动效果

javascript - ChartJS 实时动画

javascript - JQuery 容器操作

悬停时的 CSS(使用预结构化 CSS)

jquery - 我如何使用 jQuery 为我的导航项添加悬停效果淡入淡出?

css - 如何垂直定位重复图像背景?