【问题标题】:Div background change when hovering another div with jQuery使用jQuery悬停另一个div时div背景更改
【发布时间】:2012-04-15 12:11:40
【问题描述】:

我正在努力让它工作,但我对 jQuery 知之甚少。

当用户将鼠标悬停在 div“按钮”上时,div“幻灯片”的背景位置必须从“0 0”变为“0 -89px”,而将鼠标移动到另一个点必须将背景位置重置为“ 0 0"。

这是代码(从stackoverflow上的另一个问题回收):

    $(document).ready(function(){
    $('#button').hover(function(){
        $('#slide').css('backgroundPosition', newValue);
    }, function(){
        $('#slide').css('backgroundPosition', '0 -89px');
    });
});

我的 HTML:

<div id="container">
        <div id="slide"></div>
        <div id="button">Click me!</div>
</div>

我的 CSS:

div#slide {
  background: url(base_slide.png) no-repeat;
  width: 629px;
  height: 89px;
  background-position: 0px 0px;
}

它有效,但不如预期。当我将鼠标悬停在按钮 div 上时,没有任何反应,但是如果我将鼠标移动到另一个点,所有代码都可以正常工作并且背景会发生变化。

我确信有可能解决这个问题,但我昨天才开始探索一些 jQuery。另外我不知道如何将背景位置重置为0 0。

你能帮帮我吗?

【问题讨论】:

    标签: jquery hover background-position


    【解决方案1】:

    我认为 var newValue 应该替换为 '0 0'。如果我正确理解您的需求。

    检查这个例子:http://jsfiddle.net/VBEaQ/1/

    更新: 这是一个带有淡入淡出效果的完整示例;-)

    $(document).ready(function(){
        $('#button').hover(function(){
            $('#slide').stop().fadeOut(function(){
                $(this).css('backgroundPosition', '0 -89px');
            }).fadeIn();
        }, function(){
            $('#slide').stop().fadeOut(function(){
                $(this).css('backgroundPosition', '0 0');
            }).fadeIn();
        });
    });​
    

    现场演示: http://jsfiddle.net/VBEaQ/9/

    【讨论】:

    • 这就是我所需要的。现在我明白了:第一个 newValue 设置新的背景位置,而第二个设置原来的背景位置。非常感谢。
    • 如果您不需要太多时间,您能否解释一下是否可以使用淡入淡出效果来实现这种过渡?提前谢谢你。
    【解决方案2】:

    您应该尝试定义多个 css 属性和值,而不是您使用的 1 个函数 = 1 个 css 方法。 jquery 文档应该有所帮助.. 还有它的背景位置而不是 backgroundPosition。

    【讨论】:

    • 你错了,jquery 提供了两种定义 css 的方式,在这里使用的形式中,他定义了一个名为 backgroundPosition 的 javascript 变量,他没有直接定义 css 属性。另一方面,如果您使用带有 jquery 的 css 函数的对象文字,则可以使用实际的 css 属性名称。 jQuery 文档也应该对您有所帮助 ;-)
    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2013-07-02
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多