我正在構建一個類似於FlipBoard的網頁應用程序。我想嘗試使用this open source。但我不太喜歡它的實現方式(爲每個頁面創建重複項,並在旋轉時互相重疊)...另外,當我在每個頁面內添加動態內容時,翻轉效果變得非常不穩定...CSS翻頁效果
所以現在我實現與CSS和JavaScript我自己的翻轉效果..
的頁面結構是這樣的
<div class="page" id="page1">
<div class="inner"></div>
</div>
<div class="page" id="page2">
<div class="inner"></div>
</div>
當翻轉觸發......我做了以下... BUT我覺得它不是優雅的,因爲它應該是一個平滑的180度旋轉,而不是將動作分成兩部分。這個問題我已經是z-index的..旋轉-90deg後,我想「回」頁顯示在上面,否則這將是永遠的「正面」 ......
var front = '<div class="front" style="clip: rect(0px, 2229px, 1315px, 1115px);">' + $('#page2').children('.megafolio-container').html() + '</div>';
var back = '<div class="back megafolio-container" style="clip: rect(0px, 2229px, 1315px, 1115px);">' + $('#page3').children('.megafolio-container').html() + '</div>';
var middle = '<div class="middle page"></div>';
$('.container').append(middle);
$('.middle').html(front + back);
$('.middle').height($(window).height());
$('.middle').width($(window).width());
$('.middle').css('-webkit-transform', 'rotateY(-90deg)');
$('.middle').css('-webkit-transition', '-webkit-transform 500ms linear');
setTimeout(function(){
$('.middle > .back').css('z-index', 10);
$('.middle').css('-webkit-transform', 'rotateY(-180deg)');
$('.middle').css('-webkit-transition', '-webkit-transform 500ms linear');
}, 500);
謝謝!太棒了!但是,如果你能幫助我改進我的代碼,我將不勝感激:) – xialin
這不是我能想到的幾行代碼,首先,我不會使用setTimeout()函數,最好是使用回電話 ;) –