原生js实现扔硬币投票大选动画效果代码
代码语言:html
所属分类:动画
代码描述:原生js实现扔硬币投票大选动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> .tip-button { background: none; border: 0; border-radius: 0.25rem 0.25rem 0 0; cursor: pointer; font-family: 'Quicksand', sans-serif; font-size: 0.75rem; font-weight: 600; height: 2.6rem; margin-bottom: -4rem; outline: 0; position: relative; top: 0; transform-origin: 0% 100%; transition: transform 50ms ease-in-out; width: 9.5rem; -webkit-tap-highlight-color: transparent; } .tip-button:active { transform: rotate(4deg); } .tip-button.clicked { animation: 150ms ease-in-out 1 shake; pointer-events: none; } .tip-button.clicked .tip-button__text { opacity: 0; transition: opacity 100ms linear 200ms; } .tip-button.clicked::before { height: 0.5rem; width: 60%; } .tip-button.clicked .coin { transition: margin-bottom 1s linear 200ms; margin-bottom: 0; } .tip-button.shrink-landing::before { transition: width 200ms ease-in; width: 0; } .tip-button.coin-landed::after { opacity: 1; transform: scale(1); transform-origin: 50% 100%; } .tip-button.coin-landed .coin-wrapper { background: radial-gradient(circle at 35% 97%, rgba(3, 16, 50, 0.4) 0.04rem, transparent 0.04rem), radial-gradient(circle at 45% 92%, rgba(3, 16, 50, 0.4) 0.04rem, transparent 0.02rem), radial-gradient(circle at 55% 98%, rgba(3, 16, 50, 0.4) 0.04rem, transparent 0.04rem), radial-gradient(circle at 65% 96%, rgba(3, 16, 50, 0.4) 0.06rem, transparent 0.06rem); background-position: center bottom; background-size: 100%; bottom: -1rem; opacity: 0; transform: scale(2) translateY(-10px); } .tip-button__text { color: #fff; margin-right: 1.8rem; opacity: 1; position: relative; transition: opacity 100ms linear 500ms; z-index: 3; } .tip-button::before { background: #031032; border-radius: 0.25rem; bottom: 0; content: ''; display: block; height: 100%; left: 50%; position: absolute; transform: translateX(-50%); transition: height 250ms ease-in-out 400ms, width 250ms ease-in-out 300ms; width: 100%; z-index: 2; } .tip-button::after { bottom: -1rem; color: #031032; content: 'Thank you!'; height: 110%; left: 0; opacity: 0; position: absolute; pointer-events: none; text-align: center; transform: scale(0); transform-origin: 50% 20%; transition: transform 200ms cubic-bezier(0, 0, 0.35, 1.43); width: 100%; z-index: 1; } .coin-wrapper { background: none; bottom: 0; height: 18rem; left: 0; opacity: 1; overflow: hidden; pointer-events: none; position: absolute; transform: none; transform-origin: 50% 100%; transition: opacity 200ms linear 100ms, transform 300ms ease-out; width: 100%; } .coin { --front-y-multiplier: 0; --back-y-multiplier: 0; --coin-y-multiplier: 0; --coin-x-multiplier: 0; --coin-scale-multiplier: 0; --coin-rotation-multiplier: 0; --shine-opacity-multiplier: 0.4; --shine-bg-multiplier: 50%; bottom: calc(var(--coin-y-multiplier) * 1rem - 3.5rem); height: 3.5rem; margin-bottom: 3.05rem; position: absolute; right: calc(var(--coin-x-multiplier) * 34% + 16%); transform: translateX(50%) scale(calc(0.4 + var(--coin-scale-multiplier))) rotate(calc(var(--coin-rotation-multiplier) * -1deg)); transition: opacity 100ms linear 200ms; width: 3.5rem; z-index: 3; } .coin__front, .coin__middle, .coin__back, .coin::before, .coin__front::after, .coin__back::after { border-radius: 50%; box-sizing: border-box; height: 100%; left: 0.........完整代码请登录后点击上方下载按钮下载查看
网友评论0