Jquery 在后台位置上动画不起作用

Jquery animate on background position not working

本文关键字:动画 不起作用 位置 后台 Jquery      更新时间:2023-09-26

谁能告诉我为什么这个jquery不起作用?

我有一个这样的列表:

      <div id="services">
            <h1>Services</h1>
            <ul>
                <li class="menu"><a href="#">menu item1</a></li>
                <li class="menu"><a href="#">menu item2</a></li>
                <li class="menu"><a href="#">menu item3</a></li>
                <li class="menu"><a href="#">menu item4</a></li>
            </ul>
        </div>

我想在悬停时从左侧滑入背景图像,并在鼠标退出时将其反转。

以下 jquery 代码在 moueover 或鼠标输出上没有做任何事情。我在这里错过了什么?

$(function(){       
    $('li.menu a').css( {backgroundPosition: "-416px 0"})
    .mouseover(function(){
        $(this).stop().animate({backgroundPosition:"(0px 0px)"}, 500)
    })
    .mouseout(function(){
        $(this).stop().animate({backgroundPosition:"(-416px 0)"}, 500)
    });
});

你有运气:)我昨天遇到了同样的问题。我看到你和我一样,只需要 X 轴上的动画。

因此,您需要做的就是将单个参数传递给 backgroundPosition,这是 X 轴的默认值。同时传递 int,这是像素的默认值。

$('li.menu a').css({
     backgroundPosition: -416
}).mouseover(function(){
     $(this).stop().animate({backgroundPosition: 0}, 500)
}).mouseout(function(){
     $(this).stop().animate({backgroundPosition: -416}, 500)
});

你不能对背景位置进行动画处理,你可以做这样的事情:

$('li.menu a').css({
    opacity: 0.5,
    marginLeft: "-5px"
});
$('li.menu a').mouseover(function() {
    $(this).stop().animate({
        marginLeft: "0px",
        opacity: 1
    }, 500)
}).mouseout(function() {
    $(this).stop().animate({
        marginLeft: "-5px",
        opacity: 0.5
    }, 500)
});

只是一个演示

看起来没有插件就无法做到这一点。

试试这个,

$('li.menu a').css({background-position-x:"-416px",background-position-y:"0"}); 
$('li.menu a').mouseover(function(){
    $(this).stop().animate({background-position-x:"0",background-position-y:"0"}, 500)
})
.mouseout(function(){
    $(this).stop().animate({background-position-x:"-416px",background-position-y:"0"}, 500)
});