Показать сообщение отдельно
  #5 (permalink)  
Старый 05.05.2011, 17:16
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от poorking Посмотреть сообщение
А это событие везде генерируется где поддерживается transition?
в 4 файрфоксе да.

в опере 10.5 это OTransitionEnd

в хроме webkitTransitionEnd

я про него ничего не нашел. попробовал сам.. "тыкнуть"

вот пример для вебкита, файрфокса и оперы



<img width="100" src="http://javascript.ru/forum/image.php?u=9861&dateline=1303740012" style="border : 3px red solid">

<script>
var img = document.images[0],

    // это для хрома
    transit = 'WebkitTransition',
    transit_event = 'webkitTransitionEnd';





if (typeof img.style.WebkitTransition === 'undefined') {


    if (typeof document.body.style.MozTransition === 'undefined') {

        if (typeof document.body.style.OTransition === 'undefined')

                        alert('Не поддерживается');

        else {

            // меняем для оперы
            transit = 'OTransition';
            transit_event = 'OTransitionEnd';

        }

    } else {

        // меняем для мозиллы
        transit = 'MozTransition';
        transit_event = 'transitionend';

    }




} // if webkit transition END


// свойство TRANSITION 
img.style[transit] = "all 2s ease-in-out"




// после 400 мсек меняем свойства и начинается анимация
setTimeout(function () {

    with(img.style) {

        width = "300px"
        opacity = "0.3";

    }

}, 400)


// в конце анимации мутим бесконечную
img.addEventListener(transit_event, function () {

    with(img.style) {

        width = Math.random() * 150 + 50 + 'px';


        opacity =  Math.random();

        borderWidth = Math.random() * 20 + 10 + 'px';

        borderColor = "blue";

    } 

//img.removeEventListener( transit_event, arguments.callee, false );

}, false)
</script>



все ок, но в мозилле опять этот баг ( т.е. это уже фича такая )

не установил высоту - перехода нет. появляется только потом ( при transitionend. она сразу стартует )

с подчёркнутым все отлично

<img *!*width="100"*/!* src="http://javascript.ru/forum/image.php?u=9861&dateline=1303740012" style="border : 3px red solid">


кстати, заметил еще одно

img.addEventListener(transit_event, function () {

    with(img.style) {

        width = "100px"

        opacity = "0.9";

        borderWidth = "10px"

        borderColor = "blue";

    } 

}, false)


тут то по окончанию перехода ( transition ) назначаются новые свойства стилей.

анимация начинает проигрываться опять ! хоть и этого незаметно

...

заметил через файрбаг сейчас.

надо быть внимательней )



UPD : ВОТ ЭТА ССЫЛКА ответила на все мои вопросы!

Последний раз редактировалось melky, 05.05.2011 в 20:37.
Ответить с цитированием