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});
}
);
});
Подскажите, что изменить? ну или скрипт, который кроссбраузерный...:help: |
| Часовой пояс GMT +3, время: 22:22. |