Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; } body { background: #db0a5b; min-height: 100vh; margin: 0; padding: 0; -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-perspective: 1000px; perspective: 1000px; cursor: pointer; } .pan { cursor: pointer; width: 200px; position: absolute; top: 50%; left: 50%; -webkit-transform-origin: 100px 225px; transform-origin: 100px 225px; margin-left: -100px; margin-top: -225px; -webkit-transform: rotate(45deg); transform: rotate(45deg); } .pancake { height: 100%; width: 100%; -webkit-transform: rotate(-45deg) translate3d(0, 0, 5px); transform: rotate(-45deg) translate3d(0, 0, 5px); } .pancake--cooking .pancake__face--smiling { display: none; } .pancake--cooking .pancake__face--cooking { display: block; } .pancake--flipping .pancake__face--smiling, .pancake--flipping .pancake__face--cooking { display: none; } .pancake--flipping .pancake__face--flipping { display: block; } .pancake__wrapper { height: 120px; width: 120px; position: absolute; top: 50%; left: 50%; z-index: 2; margin-left: -60px; margin-top: -60px; -webkit-transform: rotate(45deg); transform: rotate(45deg); -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-backface-visibility: hidden; backface-visibility: hidden; } .pancake__wrapper:before { content: ''; box-sizing: border-box; background: #fff2a4; position: absolute; border: 5px solid #fff2a4; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%) rotateX(180deg); transform: translate(-50%, -50%) rotateX(180deg); height: 100%; width: 100%; border-radius: 100%; -webkit-animation: cook 60s forwards ease; animation: cook 60s forwards ease; } .pancake__head { fill: #fff2a4; } .pancake__splodge { -webkit-animation: cook 60s forwards ease; animation: cook 60s forwards ease; fill: #fff2a4; } .pancake__face { display: none; } .pancake__face--smiling { display: block; } @-webkit-keyframes cook { 0% { background: #fff2a4; fill: #fff2a4; } 50% { background: #eca24d; fill: #eca24d; } 100% { background: #b45326; fill: #b45326; } } @keyframes cook { 0% { background: #fff2a4; fill: #fff2a4; } 50% { background: #eca24d; fill: #eca24d; } 100% { background: #b45326; fill: #b45326; } }
JavaScript
var _window = window,TimelineMax = _window.TimelineMax; var $pan = document.querySelector('.pan'); var $wrap = document.querySelector('.pancake__wrapper'); var $cake = document.querySelector('.pancake'); var timeout = void 0; var flipping = void 0; var rotation = 0; // A little function for toggling the pancake face var cook = function cook() { timeout = setTimeout(function () { var op = 'add'; if ($cake.classList.contains('pancake--cooking')) op = 'remove'; $cake.classList[op]('pancake--cooking'); cook(); }, Math.random() * 4000); }; var getShake = function getShake(el, isPan) { var SHAKE = 0.075; var PLACE = 5; var timeline = new TimelineMax({ repeat: 3 }); timeline. to(el, SHAKE, { x: isPan ? -PLACE : PLACE, y: isPan ? PLACE : -PLACE }). to(el, SHAKE, { x: isPan ? PLACE : -PLACE, y: isPan ? -PLACE : PLACE }). to(el, SHAKE, { x: 0, y: 0 }); return timeline; }; var DRAW = 0.2; var START = 0.1; var FLIP = 0.5; var SET = 0.1; var drawBackAndTilt = function drawBackAndTilt() { var timeline = new TimelineMax(); timeline. to($pan, DRAW, { x: 10, y: -10, rotationX: -15 }). to($pan, START, { x: -10, y: 10, rotationX: 20, z: 255 }). to($pan, SET, { x: 0, y: 0, rotationX: 0, z: 0, delay: FLIP }); return timeline; }; var cakeFlip = function cakeFlip() { var timeline = new TimelineMax({ onComplete: function onComplete() {return rotation = rotation + 360;} }); timeline. to($wrap, DRAW, { x: 10, y: -10, rotationX: rotation - 15 }). to($wrap, START, { x: -10, y: 10, rotationX: rotation + 20, z: 255 }). to($wrap, FLIP, { x: -10, y: 10, z: 500, rotationX: rotation + 360, onStart: function onStart() {return $cake.classList.add('pancake--flipping');}, onComplete: function onComplete() {return $cake.classList.remove('pancake--flipping');} }). to($wrap, SET, { x: 0, y: 0, rotationX: rotation + 360, z: 5 }); return timeline; }; var flip = function flip() { if (flipping) return; var flipTl = new TimelineMax({ onStart: function onStart() { flipping = true; clearTimeout(timeout); }, onComplete: function onComplete() { flipping = false; cook(); } }); flipTl. add(getShake($pan, true), 'shake'). add(getShake($wrap, false), 'shake'). add(drawBackAndTilt(), 'flip'). add(cakeFlip(), 'flip'); }; cook(); document.body.addEventListener('click', flip);
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Svg煎饼翻转-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号