Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.07.2013, 18:43
Интересующийся
Отправить личное сообщение для Sam L Посмотреть профиль Найти все сообщения от Sam L
 
Регистрация: 14.02.2013
Сообщений: 15

Flip эффект кроссбраузерно
Попробовал реализовать flip эффект на чистом сss - не работает в опере, перепробовал разные варианты, остановился на rotate3di.js.

Но вот загвоздка - если использовать unflip или toggle - обратный поворот не срабатывает в опере (т.е. в одну сторону нормально вращается, в другую - просто hide/show).

HTML вот такой:
<ul id="Sparks" class="nav-list-example">
        <li>
            <div class="front"><img src="./img/Sparks01.jpg"/></div>
            <div class="back"><img src="./img/Sparks00.jpg"/></div>
        </li>
</ul>


СSS:

.nav-list-example {
width: 100%;
margin: 0;
padding: 0;
}

.nav-list-example div {
width:100%;
float: left;
position: relative;
border: 1px solid #000;
}

.nav-list-example li div {
top:0;
left:0;
width: 100%;
overflow: hidden;
background: transparent;
position: absolute;
}

.nav-list-example li div.back {
left: -999em;
background: transparent;
}

Скрипт:

$(document).ready(function () {
    $('.nav-list-example li div.back').hide().css('left', 0);

    function mySideChange(front) {
        if (front) {
            $(this).parent().find('div.front').show();
            $(this).parent().find('div.back').hide();

        } else {
            $(this).parent().find('div.front').hide();
            $(this).parent().find('div.back').show();
        }
    }

    $('.nav-list-example li').hover(
        function () {
            $(this).find('div').stop().rotate3Di('flip', 750, {direction: 'clockwise', sideChange: mySideChange});
        },
        function () {
            $(this).find('div').stop().rotate3Di('unflip', 1000, {sideChange: mySideChange});
        }
    );
});


В опере, мозилле, работает, если не использовать unflip или toggle, но в хроме и сафари после первого переворота - второй и последующий - двойные (картинка дважды вращается и показывается правильная сторона).... Скрипт меняю вот так:
$(document).ready(function () {
    $('.nav-list-example li div.back').hide().css('left', 0);

    function mySideChange(front) {
        if (front) {
            $(this).parent().find('div.front').show();
            $(this).parent().find('div.back').hide();

        } else {
            $(this).parent().find('div.front').hide();
            $(this).parent().find('div.back').show();
        }
    }

    function mySideChangeBack(front) {
        if (front) {
            $(this).parent().find('div.front').hide();
            $(this).parent().find('div.back').show();

        } else {
            $(this).parent().find('div.front').show();
            $(this).parent().find('div.back').hide();
        }
    }

    $('.nav-list-example li').hover(
        function () {
            $(this).find('div').stop().rotate3Di('flip', 750, {direction: 'clockwise', sideChange: mySideChange});
        },
        function () {
            $(this).find('div').stop().rotate3Di('flip', 1000, {sideChange: mySideChangeBack});
        }
    );
});


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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать эффект смены страниц Eugi Элементы интерфейса 6 16.07.2013 17:06
Эффект при прокрутке страницы Baskerville42 jQuery 1 17.05.2013 02:29
реально ли реализовать такой эффект на сайте danil-n2 Элементы интерфейса 1 09.11.2012 00:34
Интересный эффект InviS jQuery 4 25.08.2010 13:49
эффект ленты HelpeR Общие вопросы Javascript 8 08.01.2009 11:41