📜  颤动圆形容器透明角 (1)

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

颤动圆形容器透明角

这是一个有趣的主题,让我们来看看如何用程序代码实现。

实现方式

我们可以使用 HTML、CSS 和 JavaScript 来实现这个效果。

HTML

首先,我们需要创建一个圆形容器并将其放置在一个透明角中。以下是相应的 HTML 代码片段:

<div id="container">
  <div id="circle"></div>
  <div id="overlay"></div>
</div>

其中,#container 是包含圆形容器和遮罩层的父元素,#circle 是圆形容器,#overlay 是遮罩层。

CSS

为了实现这个效果,我们需要使用 CSS 属性 border-radius 来创建一个圆形容器,并使用 box-shadow 属性来创建阴影效果。我们还需要添加一个 animation 属性来制作颤动的动画效果。以下是相应的 CSS 代码片段:

#container {
  position: relative;
  width: 100px;
  height: 100px;
}

#circle {
  position: absolute;
  top: 0;
  left: 0;
  width: 100px;
  height: 100px;
  background-color: #FFFFFF;
  border-radius: 50%;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
  animation: shake 0.5s ease-in-out infinite;
}

#overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 50%);
  pointer-events: none;
}

@keyframes shake {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-5px);
  }
}
JavaScript

现在,我们还可以使用 JavaScript 来添加交互效果。例如,当用户与容器交互时,我们可以将颤动动画暂停。以下是相应的 JavaScript 代码片段:

const circle = document.querySelector("#circle");

circle.addEventListener("mouseover", () => {
  circle.style.animation = "none";
});

circle.addEventListener("mouseout", () => {
  circle.style.animation = "shake 0.5s ease-in-out infinite";
});
结论

完成上述步骤后,现在我们已经拥有了一个颤动的圆形容器和一个透明角。我们可以使用此代码片段作为启动模板,并添加自己的一些创意,来制作一个非常好看的UI界面。