CSS3动画是现代Web设计中必不可少的一部分。它能够为我们提供各种各样的交互效果和动态效果,使我们的页面更加生动有趣。今天我们就来看一下如何使用CSS3动画来制作一个键盘。
/* 设定键盘的大小和位置 */ .keyboard { width: 500px; height: 300px; margin: 0 auto; position: relative; } /* 设定所有按键的样式 */ .key { width: 40px; height: 40px; background: #eee; border: 1px solid #ccc; position: absolute; top: 80px; left: 40px; transition: all .2s ease-in-out; } /* 将每个按键设定为不同的位置 */ .key:nth-child(2) { left: 80px; } .key:nth-child(3) { left: 120px; } ... /* 设定按下按键时的样式 */ .key:active { transform: translateY(3px); box-shadow: 0 1px 0 rgba(0,0,0,.4); }
上面的代码是样式部分的代码,我们设定了键盘的大小、位置以及每个按键的样式。其中的transition属性是过渡效果,会在按下按键时产生动画效果。
下面是JavaScript部分的代码,它可以使得在按下按键时,按键会被按下去,松开按键时,按键会弹起来:
// 获取所有的按键 var keys = document.querySelectorAll('.key'); // 为每个按键添加事件监听器 keys.forEach(function(key) { key.addEventListener('mousedown', function() { // 在按下时添加"active"类 key.classList.add('active'); }); key.addEventListener('mouseup', function() { // 在松开时移除"active"类 key.classList.remove('active'); }); });
最后,我们来添加一个键盘背景的动画效果。这一步需要使用@keyframes关键字来创建一个动画序列:
/* 创建键盘背景的动画序列 */ @keyframes keyboard-bg { 0% { background: #fff; } 50% { background: #eee; } 100% { background: #fff; } } /* 将键盘背景的动画序列应用到键盘上 */ .keyboard { animation: keyboard-bg 5s infinite; }
现在,我们就完成了一个用CSS3动画制作的键盘啦!