как исправить смещение после анимации в IE - PullRequest
0 голосов
/ 13 февраля 2009

Я только что сделал текстовую анимацию (постепенно; animate (top, opacity)), и в конце текст ушел на 5 пикселей влево, затем довольно быстро вернулся в исходное положение. Это произошло только в IE; все остальные основные браузеры вели себя нормально.

Есть идеи о том, почему это происходит и как это исправить? Я заинтересован в исправлении IE7, в частности.

Спасибо.

(PS, я удалил атрибут фильтра, чтобы избежать сбоя ClearType.)

HTML

<div id="logomarca">
    <h1 id="marca">txt</h1>
    <p id="spec">txt</p>
</div>

CSS

div#logomarca{     
position:absolute;
left:50%;
top:0%;
margin-top:-83px;
margin-left:-83px;
width:160px;
height:45px;
    }
p#spec{position:absolute; }

1020 * Javascript *

    $(document).ready(function(){
    $("div#logomarca").show();
    $("p#spec").fadeTo(0, 0.00,
        function() { if($.browser.msie) { this.style.removeAttribute('filter'); }; } 
    ); //hide() is not working with fadeIn
    if($.browser.msie) { 
                $("p#spec").css({ 
                "margin-top": "8px",  
                "margin-left": "-165px", 
                display: "none"  
                }); 
            };  
    $("div#logomarca").animate({
        top: "+=50%",
        opacity: 1.00
        }, 2500, 
        function() { if($.browser.msie) { this.style.removeAttribute('filter'); }; } 
        );
    $(this).delay(3200,function(){  
        if($.browser.msie) { $("p#spec").show(); };
$("p#spec").fadeTo(0, 0.00  ); 
        $("p#spec").animate({
            opacity: 1.00,
            top: "+=20"     
            }, 2500,
            function() { if($.browser.msie) { 
                this.style.removeAttribute('filter'); 
                }; }            
            );
        $(this).delay(3500,function(){  
            $("p#spec").fadeTo(800, 0.0);
            $(this).delay(650,function(){  
                $("h1#marca").fadeTo(1500, 0.0);
                });
            });
        });
 });

Ответы [ 3 ]

1 голос
/ 13 февраля 2009

Было бы полезно, если бы вы могли опубликовать свернутый рабочий образец, чтобы мы могли посмотреть на код.

Мое лучшее предположение заключается в том, что вам нужно обернуть свой элемент элементом уровня блока (div или p) и присвоить этому элементу 'position: relative;', чтобы IE работал.

0 голосов
/ 20 мая 2009

Измените поле для заполнения и посмотрите, поможет ли это. У меня недавно была действительно похожая проблема, и это решило ее.

0 голосов
/ 13 февраля 2009

Попробуйте обернуть в div с фиксированными размерами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...