jquery - 背景位置问题

标签 jquery css

我有一个带有一堆 li 的 ul,它们都有不同的背景图像。 当您将鼠标悬停在每一里时,您将获得预期的翻转背景位置更改。 我还应用了一个触发 jquery 函数的按钮 同时将背景位置更改应用于每一里。 这也按预期工作。

不起作用的是,一旦您将鼠标悬停在调用 jquery 的按钮上, 您无法再成功地将 lis 单独悬停。

这是工作(或不工作)的例子... http://www.weirdesigns.com/simple/ 先滚动圆圈,尝试按钮,然后再次尝试圆圈,它们不再起作用了???请帮助...

这是我的 jQuery:

$(document).ready(function(){
    $('.powerRoll').hover(function(){
        $('li').css({backgroundPosition: '0 -130px'});
    })
    .mouseout(function(){
        $('li').css({backgroundPosition: '0px 0px'});
    })
});

最佳答案

由于您的 Javascript 设置了 li 元素的内联 style 属性,样式表的声明被否决了。您可以通过在 :hover background-position 声明的末尾添加 !important 来解决此问题:

li:hover {
    background-position : 0 -130px !important;
}

此外,我注意到您的 jQuery 有点奇怪。

您有一个hover() 函数,然后是一个mouseout()。您可以将两者结合起来并使用更少的空间:

$(document).ready(function(){
    $('.powerRoll').hover(function(){
        $('li').css("background-position","0 -130px");
    }, function(){
        $('li').css("background-position","0px 0px");
    });
});

更好的是,您可以使用 Javascript“清除”该属性,以便它在悬停时从样式表继承:

$(document).ready(function(){
    $('.powerRoll').hover(function(){
        $('li').css("background-position","0 -130px");
    }, function(){
        $('li').css("background-position","");
    });
});

最后,您会注意到我更改了您的 css() 函数的语法。这是因为您不需要括号,因为您只是更改一个属性的值。

关于jquery - 背景位置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474842/

相关文章:

css - 模糊 div css 问题

javascript - 如何在 html 电子邮件模板中覆盖 gmail 视口(viewport)?

javascript - 在 Chrome 中应用 z-index 后,文本变得非常轻微模糊

html - 移动优先媒体查询 : Is there a way to 'scope' styles (regarding visibility classes)?

javascript - jquery - 相当于 Prototype.js 的 "match"函数

javascript - 替换HTML中的JS内容?

javascript - jQuery 监听器点击不起作用

html - 如何设置 Angular ng-template 选择器的样式

jquery - 在一页上处理多个表单

jquery - 如何使用迷你图填充 jqGrid 单元格