Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
command
C
V
css
* { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 0; --sat: 0%; --bg: hsl(var(--hue),var(--sat),90%); --fg: hsl(var(--hue),var(--sat),10%); --trans-dur: 0.3s; font-size: calc(16px + (24 - 16) * (100vw - 320px) / (2560 - 320)); } body, button { color: var(--fg); font: 1em/1.5 -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif; } body { background-color: var(--bg); background-image: linear-gradient(-45deg,hsla(var(--hue),var(--sat),0%,0),hsla(var(--hue),var(--sat),0%,0.3)); display: flex; height: 100vh; transition: background-color var(--trans-dur), color var(--trans-dur); } .keyboard, .keyboard:before, .keyboard:after { transition: background-color var(--trans-dur), box-shadow var(--trans-dur); } .keyboard, .keyboard__key-lines { display: flex; } .keyboard { background-color: hsl(var(--hue),var(--sat),80%); background-image: linear-gradient(90deg,hsla(var(--hue),var(--sat),10%,0.4),hsla(var(--hue),var(--sat),10%,0)); border-radius: 0.75em; box-shadow: -0.5em -0.5em 0.75em hsla(0,0%,0%,0.6), 0 0 0 1px hsl(var(--hue),var(--sat),67%) inset; align-items: center; margin: auto; padding: 0.375em; position: relative; width: 18.5em; height: 6.5em; } .keyboard:before, .keyboard:after { background-color: hsl(var(--hue),var(--sat),90%); content: ""; display: block; position: absolute; bottom: 100%; } .keyboard:before { box-shadow: -0.5em -0.5em 0.75em hsla(0,0%,0%,0.6), 0.25em 0 0.25em hsla(var(--hue),var(--sat),10%,0.2) inset, 0.25em -1.25em 0.5em hsla(var(--hue),var(--sat),10%,0.5) inset; left: calc(50% - 0.5em); width: 1em; height: 40em; } .keyboard:after { border-radius: 0.25em 0.25em 0 0; box-shadow: 0.375em -0.25em 0.5em hsla(var(--hue),var(--sat),10%,0.5) inset; left: calc(50% - 0.75em); width: 1.5em; height: 1.25em; } .keyboard__cmd { display: block; width: 1em; height: 1em; } .keyboard__key { background-color: hsl(var(--hue),var(--sat),95%); border-radius: 0.5em; box-shadow: -0.4em -0.25em 0.25em hsla(0,0%,0%,0.25), 0 0 0 0.1em hsla(0,0%,0%,0.3), 0.04em 0.04em 0.04em hsla(0,0%,0%,0.4) inset, -0.1em -0.1em 0.04em hsla(0,0%,100%,0.8) inset; color: hsl(var(--hue),var(--sat),50%); margin: 0 0.375em; outline: transparent; padding: 0.75em; position: relative; width: 5em; height: 5em; transition: background-color var(--trans-dur), box-shadow 0.15s, color var(--trans-dur); -webkit-appearance: none; appearance: none; -webkit-user-select: none; -moz-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; } .keyboard__key--meta { width: 5.5em; } .keyboard__key:active, .keyboard__key.active { box-shadow: 0 0 0.2em hsla(0,0%,0%,0.2), 0 0 0 0.1em hsla(0,0%,0%,0.4), 0 -0.05em 0 hsla(0,0%,0%,0.6) inset, -0.05em -0.15em 0.05em hsla(0,0%,100%,0.8) inset; } .keyboard__key-line { font-size: 2em; line-height: 1; } .keyboard__key-line--small { font-size: 0.875em; } .keyboard__key-line--tr { margin: 0 0 auto auto; } .keyboard__key-line--br { margin: auto 0 0 auto; } .keyboard__key-lines { display: flex; justify-content: center; align-items: center; flex-direction: column; width: 100%; height: 100%; transition: transform 0.15s; } .keyboard__key:active .keyboard__key-lines, .keyboard__key.active .keyboard__key-lines { transform: translateY(-1px); } .keyboard__key:before { box-shadow: 0 0 0 0.5em hsla(223,90%,50%,0); border-radius: 0.5em; content: ""; display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: box-shadow var(--trans-dur); } .keyboard__key:focus-visible:before { box-shadow: 0 0 0 0.5em hsla(223,90%,50%,0.5); } /* Dark theme */ @media (prefers-color-scheme: dark) { :root { --bg: hsl(var(--hue),var(--sat),20%); --fg: hsl(var(--hue),var(--sat),90%); } .keyboard__key { background-color: hsl(var(--hue),var(--sat),15%); box-shadow: -0.4em -0.25em 0.25em hsla(0,0%,0%,0.25), 0 0 0 0.1em hsla(0,0%,0%,0.3), 0.04em 0.04em 0.04em hsla(0,0%,0%,0.4) inset, -0.1em -0.1em 0.04em hsla(0,0%,100%,0.05) inset; color: hsl(var(--hue),var(--sat),90%); } .keyboard__key:active, .keyboard__key.active { box-shadow: 0 0 0.2em hsla(0,0%,0%,0.2), 0 0 0 0.1em hsla(0,0%,0%,0.4), 0 -0.05em 0 hsla(0,0%,0%,0.4) inset, -0.05em -0.15em 0.05em hsla(0,0%,100%,0.05) inset; } }
JavaScript
window.addEventListener("DOMContentLoaded",() => { const c = new CopypasteKeyboard(".keyboard"); }); class CopypasteKeyboard { constructor(el) { this.el = document.querySelector(el); this.init(); } get isMac() { return /(Mac|iP[ahno]+[de])/i.test(navigator.userAgent); } init() { window.addEventListener("keydown",this.keyAction.bind(this,true)); window.addEventListener("keyup",this.keyAction.bind(this,false)); } keyAction(down,e) { let { key } = e; const isCmd = key === "Meta" && this.isMac; const isCtrl = key === "Control" && !this.isMac; // for non-Apple only if (isCmd || isCtrl) key = "cmd"; const keyEl = this.el?.querySelector(`[data-key="${key}"]`); const activeClass = "active"; if (down === true) keyEl?.classList.add(activeClass); else keyEl?.classList.remove(activeClass); } }
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>苹果键盘UI-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号