📜  NeumorphismUI 动画(1)

📅  最后修改于: 2023-12-03 15:17:51.593000             🧑  作者: Mango

NeumorphismUI 动画

NeumorphismUI,简称NeuUI,是一种新的UI设计趋势,它结合了扁平化设计和拟物化设计的特点。相比传统的拟物化设计,NeuUI更加平面,又有一定的体感,适合用于按钮、卡片等元素的设计中。

NeumorphismUI 动画,则是在NeuUI基础上,通过CSS动画和JavaScript交互,为用户带来更加流畅、具有交互性的体验。

动画效果

以下是几种常见的NeumorphismUI动画效果:

摇晃动画

通过旋转和移动元素,制造摇晃效果,给用户带来视觉上的冲击和注意力集中。

<div class="shake">
  <h2>NeumorphismUI Shake</h2>
  <p>NeumorphismUI Shake animation with CSS</p>
</div>
.shake {
  position: relative;
  animation: shake 0.5s cubic-bezier(0.36, 0.07, 0.19, 0.97) infinite both;
}

@keyframes shake {
  0% {transform: translateX(0);}
  20% {transform: translateX(-8px) rotate(-6deg);}
  40% {transform: translateX(8px) rotate(6deg);}
  60% {transform: translateX(-8px) rotate(-3.6deg);}
  80% {transform: translateX(8px) rotate(3.6deg);}
  100% {transform: translateX(0) rotate(0);}
}
缩放动画

通过放大和缩小元素,制造拉近或远离的效果,增强用户的互动感。

<div class="scale">
  <h2>NeumorphismUI Scale</h2>
  <p>NeumorphismUI Scale animation with CSS</p>
</div>
.scale {
  position: relative;
  animation: scale 0.5s cubic-bezier(.3, 1.1, .6, 1.15) infinite alternate both;
}

@keyframes scale {
  0% {transform: scale(1);}
  100% {transform: scale(1.1);}
}
按钮动画

通过改变按钮的背景颜色和边框,制造按下和放开的效果,增强按钮的反馈感。

<button class="btn">NeumorphismUI Button</button>
.btn {
  position: relative;
  display: inline-block;
  padding: 1rem 2rem;
  background-color: #fff;
  color: #222;
  font-size: 1rem;
  font-weight: bold;
  text-transform: uppercase;
  border: none;
  border-radius: 10px;
  box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.2), -5px -5px 20px rgba(255, 255, 255, 0.5);
  transition: all 0.2s ease-in-out;
}

.btn:hover {
  box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.4), -5px -5px 20px rgba(255, 255, 255, 0.7);
  transform: translate(2px, -2px);
  transition: all 0.2s ease-in-out;
}

.btn:active {
  box-shadow: none;
  transform: translate(0, 0);
}
实现方法
CSS动画

CSS动画是实现NeumorphismUI动画的一种简单、快速的方法,它通过对元素的样式进行改变,制造出不同的动画效果。

.element {
  animation: name duration timing-function delay iteration-count direction fill-mode play-state;
}

其中,name为动画名称;duration为动画持续时间;timing-function为动画时间函数;delay为动画延迟时间;iteration-count为动画重复次数;direction为动画方向;fill-mode为动画结束后,元素的状态;play-state为动画播放状态。

JavaScript交互

JavaScript交互是实现NeumorphismUI动画的一种更高级、更有灵活性的方法,它通过监听鼠标事件、键盘事件等,对元素的样式进行改变,制造出更为复杂的动画效果。

element.addEventListener('event', function() {
  // 动画效果
});

其中,element为需要添加动画的元素;event为需要监听的事件;function()为事件触发后执行的函数,函数内可以详细定义动画效果。

结语

NeumorphismUI动画是一种新的UI设计趋势,它通过CSS动画和JavaScript交互,为用户带来更加流畅、具有交互性的体验。希望本文对程序员们的学习和工作有所帮助。