欧美国产另类久热|951超碰伊人久久|伊人影视久久久久|色婷婷亚洲小电影|色东京热69XX|婷婷玖玖深爱网|加勒比东京热网站|无码A级毛片在线观看|一级a毛一级a看|中文字幕人妻欧美

基于javascript html5實現(xiàn)3D翻書特效
來源:易賢網(wǎng) 閱讀:1773 次 日期:2016-07-20 15:16:38
溫馨提示:易賢網(wǎng)小編為您整理了“基于javascript html5實現(xiàn)3D翻書特效”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了基于javascript html5實現(xiàn)翻書特效的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

這是一款十分炫酷的HTML5 3D書本翻頁動畫,效果相對比較簡單,拖拽鼠標模擬用手翻頁,更漂亮的是翻頁過程中,呈現(xiàn)出逼真的3D立體效果。書本中的文字和圖片也會3D展示,非???。

HTML代碼

<div class="book p3d">

 <div class="back-cover p3d">

 <div class="page back flip"></div>

 <div class="page front p3d">

  <div class="shadow"></div>

  <div class="dino"></div>

 </div>

 </div>

 <div class="front-cover p3d">

 <div class="page front flip p3d">

  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam fermentum nisl quis nulla eleifend dignissim. Curabitur varius lobortis tincidunt. Maecenas gravida, nulla quis luctus imperdiet, ipsum nibh consectetur ante, in sodales massa tortor eget neque. Donec porta ligula massa, id sagittis est. Ut nisl tellus, faucibus nec feugiat ut, laoreet iaculis felis. Suspendisse ultrices mauris vel tellus suscipit commodo. Integer vitae tortor erat. Pellentesque non tempor nisi.</p>

 </div>

 <div class="page back"></div>

 </div>

</div>

CSS代碼

.book {

 width: 300px;

 height: 300px;

 margin-top: -150px;

 position: absolute;

 left: 50%;

 top: 50%;

 -webkit-transform: rotateX(60deg);

 -moz-transform: rotateX(60deg);

 -ms-transform: rotateX(60deg);

 -o-transform: rotateX(60deg);

 transform: rotateX(60deg);

 -webkit-user-select: none;

 -moz-user-select: none;

 -ms-user-select: none;

 -o-user-select: none;

 user-select: none;

}

.page {

 width: 300px;

 height: 300px;

 padding: 1em;

 position: absolute;

 left: 0;

 top: 0;

 text-indent: 2em;

}

.front {

 background-color: #d93e2b;

}

.back {

 background-color: #fff;

}

.front-cover {

 cursor: move;

 -webkit-transform-origin: 0 50%;

 -moz-transform-origin: 0 50%;

 -ms-transform-origin: 0 50%;

 -o-transform-origin: 0 50%;

 transform-origin: 0 50%;

 -webkit-transform: rotateY(0deg);

 -moz-transform: rotateY(0deg);

 -ms-transform: rotateY(0deg);

 -o-transform: rotateY(0deg);

 transform: rotateY(0deg);

}

.front-cover .back {

 background-image: url(mdn.png);

 background-repeat: no-repeat;

 background-position: 50% 50%;

 -webkit-transform: translateZ(3px);

 -moz-transform: translateZ(3px);

 -ms-transform: translateZ(3px);

 -o-transform: translateZ(3px);

 transform: translateZ(3px);

}

.back-cover .back {

 -webkit-transform: translateZ(-3px);

 -moz-transform: translateZ(-3px);

 -ms-transform: translateZ(-3px);

 -o-transform: translateZ(-3px);

 transform: translateZ(-3px); 

}

.p3d {

 -webkit-transform-style: preserve-3d;

 -moz-transform-style: preserve-3d;

 -ms-transform-style: preserve-3d;

 -o-transform-style: preserve-3d;

 transform-style: preserve-3d;

}

.flip {

 -webkit-transform: rotateY(180deg);

 -moz-transform: rotateY(180deg);

 -ms-transform: rotateY(180deg);

 -o-transform: rotateY(180deg);

 transform: rotateY(180deg);

}

.dino,

.shadow {

 width: 196px;

 height: 132px;

 position: absolute;

 left: 60px;

 top: 60px;

 -webkit-transform-origin: 0 100%;

 -moz-transform-origin: 0 100%;

 -ms-transform-origin: 0 100%;

 -o-transform-origin: 0 100%;

 transform-origin: 0 100%;

}

.dino {

 background: url(dino.png) no-repeat;

}

.shadow {

 background: url(shadow.png) no-repeat;

}

JavaScript代碼

(function (window, document) {

 var prefixes = ['Webkit', 'Moz', 'ms', 'O', ''],

 book = document.querySelectorAll('.book')[0],

 page = document.querySelectorAll('.front-cover')[0],

 dino = document.querySelectorAll('.dino')[0],

 shadow = document.querySelectorAll('.shadow')[0],

 hold = false,

 centerPoint = window.innerWidth / 2,

 pageSize = 300,

 clamp = function (val, min, max) {

 return Math.max(min, Math.min(val, max));

 };

 page.onmousedown = function () {

 hold = true;

 };

 window.onmouseup = function () {

 if (hold) {

 hold = false;

 }

 };

 window.onresize = function () {

 centerPoint = window.innerWidth / 2;

 };

 window.onmousemove = function (evt) {

 if (!hold) {

 return;

 }

 var angle = clamp((centerPoint - evt.pageX + pageSize) / pageSize * -90, -180, 0),

 i, j;

 for (i = 0, j = prefixes.length; i < j; i++) {

 book.style[prefixes[i] + 'Transform'] = 'rotateX(' + (60 + angle / 8) + 'deg)';

 page.style[prefixes[i] + 'Transform'] = 'rotateY(' + angle + 'deg)';

 dino.style[prefixes[i] + 'Transform'] = 'rotateX(' + (angle / 2) + 'deg)';

 shadow.style[prefixes[i] + 'Transform'] = 'translateZ(1px) skewX(' + (angle / 8) + 'deg)';

 }

 };

})(window, document);

以上就是HTML5 3D書本翻頁動畫的示例代碼,希望對大家學習javascript程序設計有所幫助。

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:基于javascript html5實現(xiàn)3D翻書特效
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網(wǎng)