2013-08-14 2 views
0
var d= $('#menu-top-menu').children(); 
d.hover(function(){ 
    var e= $(this).position().left; 
    var f= $(this).parent().position().left; 
    var g= e-f; 
    $('#menu-top-menu').animate({backgroundPosition, g + "px 3px"}); 
    console.log(g); 
}); 

Я не знаю, почему он не оживляет. Не могли бы вы дать мне подсказку, чтобы решить проблему? СпасибоjQuery background position not animate

+1

Возможного дубликат [Jquery одушевленного фона позиции] (http://stackoverflow.com/questions/5171080/jquery -animate-фон-положение). –

+0

Вы можете разместить html, будет легче идентифицировать проблему. – Dinesh

ответ

2

Вам необходимо предоставить свойства для анимации отдельно, а также правильный синтаксис - отделить ключ/значение параметров объектов от : не запятой. Попробуйте это:

var d= $('#menu-top-menu').children(); 
d.hover(function(){ 
    var e= $(this).position().left; 
    var f= $(this).parent().position().left; 
    var g= e-f; 
    $('#menu-top-menu').animate({ 
     'background-position-x': g + 'px', 
     'background-position-y': '3px' 
    }); 
    console.log(g); 
}); 

Вы также можете оставить из background-position-y предполагая, что он никогда не меняется, и устанавливается в CSS.

+0

это не работает – architesa

+0

@architesa проверить это '$ ('# menu-top-menu'). Animate (backgroundPosition:" ("+ g +" 'px' 3px) ");' –

+1

@Tushar, вы проверили этот код? Кажется, что он содержит литерал объекта без фигурных скобок, что является синтаксической ошибкой. –

0

Проверьте с этим ... надеюсь, что он будет работать (для справки:):

$("#menu-top-menu").animate({ 
    background-position-x:"20px", 
    background-position-y: "3px" 
    },1500);