JQuery Animate не работает в Chrome - PullRequest
5 голосов
/ 18 сентября 2011

мой код анимации jquery работает нормально в IE и Firefox, но не работает в Chrome и Safari. какие-либо предложения?

это мой анимационный код для jquery

$('#menu ul li a').click(function (e) {

    /* On a thumbnail click */
    $('li.menuItem').removeClass('act').addClass('inact');
    $(this).parent().addClass('act');

    var pos = $(this).parent().prevAll().length; //.prevAll('.menuItem').length;
    pos = pos - 1;


    $('#slides').animate({ marginLeft: -positions[pos] + 'px' }, 450);
    /* Start the sliding animation */

    e.preventDefault();
    /* Prevent the default action of the link */
});

Ответы [ 2 ]

3 голосов
/ 18 сентября 2011

, если я хорошо помню, jQuery хорошо вычисляет без 'px' при анимации или применении CSS для облегчения манипулирования, и это более логично, потому что анимация - это вычисление с числами, а не со строками.Тогда разве это не проблема css?Вы пытались установить по крайней мере 'position':'lative 'или' display ':' block 'или' display ':' inline-block 'для элемента, который вы анимируете.Потому что css нуждается в таком типе отображения для применения свойств полей.Попробуйте анимировать 'left' вместо 'margin-left', например, если это работает, оно исходит из необходимого свойства css для применения маржи.

2 голосов
/ 18 сентября 2011

Используйте left вместо marginLeft.

...