返回

逼格满满的3D悬浮按钮制作过程

前端

# 文章正文

序言

3D悬浮按钮,是一种通过CSS3实现的具有立体效果的按钮,可以在网页或应用程序中使用。它不仅可以美化页面,还能提升用户体验。随着互联网技术的不断发展,3D悬浮按钮因其酷炫的外观和丰富的交互效果,备受设计师和开发人员的青睐。在本文中,我将向大家展示如何使用CSS3制作一个逼格满满的3D悬浮按钮,并分享实现过程中的心得体会。

灵感来源

起初,我在掘金刷文时,偶然看到一个3D菜单。它的炫酷外观和流畅的交互效果深深吸引了我。于是我萌生了制作一个3D按钮的想法,并决心将其付诸实践。

实现步骤

1. 准备工作

首先,我们需要创建HTML和CSS文件,并在HTML文件中添加必要的元素。具体代码如下:

<!DOCTYPE html>
<html>
<head>
  
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <button class="button">点击我</button>

  <script src="script.js"></script>
</body>
</html>
/* 按钮样式 */
.button {
  position: relative;
  display: inline-block;
  padding: 12px 20px;
  border: 1px solid #ccc;
  border-radius: 5px;
  background-color: #fff;
  color: #333;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  transition: all 0.3s ease-in-out;
}

/* 按钮悬浮样式 */
.button:hover {
  transform: translateY(-3px);
  box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
}

/* 按钮按下样式 */
.button:active {
  transform: translateY(-1px);
  box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}

2. 添加3D效果

接下来,我们需要在CSS文件中添加代码来实现3D效果。具体代码如下:

/* 按钮3D效果 */
.button {
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-perspective: 1000px;
  perspective: 1000px;
}

/* 按钮正面样式 */
.button .front {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  background-color: #fff;
  color: #333;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
}

/* 按钮背面样式 */
.button .back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  background-color: #ccc;
  color: #fff;
  text-align: center;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  transform: rotateY(180deg);
}

3. 添加交互效果

最后,我们需要添加一些JavaScript代码来实现交互效果。具体代码如下:

// 获取按钮元素
var button = document.querySelector('.button');

// 按钮悬浮时
button.addEventListener('mouseover', function() {
  this.classList.add('hover');
});

// 按钮离开时
button.addEventListener('mouseout', function() {
  this.classList.remove('hover');
});

// 按钮按下时
button.addEventListener('mousedown', function() {
  this.classList.add('active');
});

// 按钮松开时
button.addEventListener('mouseup', function() {
  this.classList.remove('active');
});

实现效果

现在,当我们运行这个程序时,就可以看到一个漂浮在页面上的3D按钮了。当我们鼠标悬停在按钮上时,按钮会上下移动并投射出阴影。当我们点击按钮时,按钮会下沉并改变颜色。

总结

在本文中,我详细介绍了如何使用CSS3制作一个逼格满满的3D悬浮按钮。这个按钮具有酷炫的外观和丰富的交互效果,可以美化页面,提升用户体验。希望这篇教程对大家有所帮助。

# 参考资料

如何使用CSS3制作3D悬浮按钮
CSS3 3D按钮效果