卷書翻頁是一種越來越流行的網頁設計元素,通過CSS和JS的配合,可以在網頁上呈現出跟真正翻書一樣的效果。
實現卷書翻頁的核心在于利用CSS3的transform屬性,同時用JS控制卷書各個部分的運動。以下是一個簡單的卷書翻頁的例子:
html, body { width: 100%; height: 100%; margin: 0; padding: 0; } .container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .book { position: relative; width: 300px; height: 400px; overflow: hidden; } .cover, .back { position: absolute; width: 50%; height: 100%; background-color: #e0e0e0; } .spine { position: absolute; left: 50%; width: 0; height: 100%; border-left: 2px solid black; transform-origin: left; transform: rotateY(0deg); } .flipper { position: absolute; top: 0; left: 0; width: 50%; height: 100%; transform-origin: 0% 100%; transition: all 0.8s ease-out; } .book.open .spine{ transform: rotateY(-90deg); } .book.open .flipper{ transform: rotateY(-180deg); }
這個例子是一個網頁上卷的書,這里我們只展示了書的封面、書脊和書背。卷書翻頁的效果是通過改變transform的值實現的,通過動態地改變transform以及使用transition來實現平滑過渡。
下面我們來看一看實現翻書效果的JS代碼:
document.querySelector('.book').addEventListener('click', function() { var book = this; if (book.classList.contains('open')) { book.classList.remove('open'); } else { book.classList.add('open'); } });
這段代碼監聽了書被點擊的事件,每次點擊,如果書對象已經被打開(open類),則移除該類,否則添加open類,這樣就可以通過CSS實現卷書翻頁的效果。
總之,利用JS和CSS實現卷書翻頁效果是一種越來越廣泛應用的網頁設計元素,同時也是提升用戶體驗的好方法。
上一篇css input用法
下一篇css3如何畫半橢圓