动画backgroundPosition

时间:2011-06-17 03:00:02

标签: jquery jquery-animate background-position

任何人都知道为什么以下不起作用。如果我只是在没有动画的情况下直接设置css就行了。 //div.css( {backgroundPosition: "bottom left"} );

   $("#menu li").bind("mouseover", function(){
        var div=$(this).find('div');
        div.css( {backgroundPosition: "bottom left"} );
        div.stop().animate( {backgroundPosition: '25px 0px'}, {duration:500} );
    })
    .mouseout(function(){
        var div=$(this).find('div');
        div.stop().animate( {backgroundPosition: "0px 0px"}, {duration:500} );

    });

2 个答案:

答案 0 :(得分:2)

你必须在IE中设置backgroundPosition的初始值,否则这不会起作用,因为它不知道如何制作动画。

我还会改变mouseover和mouseout以使其具有相同的样式,不使用bind onone并在另一个上使用鼠标悬停,就像在我的示例中一样

像这样:

$("#menu li > div").css({
    backgroundPosition: "0px 0px"
})

$("#menu li").mouseover(function() {
    var div = $(this).find('div');
    div.stop().animate({
        backgroundPosition: '25px 0px'
    }, 500);
}).mouseout(function() {
    var div = $(this).find('div');
    div.stop().animate({
        backgroundPosition: "0px 0px"
    }, 500);
});

答案 1 :(得分:0)

试试这个

$("#menu li").bind("mouseover", function(){
        var div=$(this).find('div');
        div.stop().animate( {backgroundPosition: '25px 0px'}, 500 );
    })
    .mouseout(function(){
        var div=$(this).find('div');
        div.stop().animate( {backgroundPosition: "0px 0px"}, 500 );

    });