当前位置: 首页 > article >正文

有趣的CSS - 多彩变化的按钮

目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

这个按钮效果主要使用 :hover:active 伪选择器以及 animationtransition 属性来让背景色循环快速移动形成视觉效果。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<button>戳一下</button>

写上主体 button 标签。

css 部分代码

button{
  width: 140px;
  height: 46px;
  font-size: 16px;
  font-weight: 700;
  color: black;
  border: 2px solid #ffffff;
  border-radius: 10px;
  background-color: #4158D0;
  background-image: linear-gradient(90deg, #4158D0 0%, #C850C0 17%, #e6a731 39%, #8329e2 60%, #3fb75f 80%, #4158D0 100%);
  box-shadow: 0 0 0 2px #000000;
  cursor: pointer;
  transition: all 0.5s ease;
}
button:hover{
  color: #ffffff;
  animation: quick 0.5s linear infinite;  /* 设置动画参数且循坏播放 */
}
@keyframes quick{
  to {
    background-position: 140px 0;  /*  这里的X轴的值等于button的宽度 */
  }
}
button:active{
  transform: translateY(1px);
}

css 部分主要通过 :hover 伪选择器判断鼠标悬浮时,设置 animation 参数让背景色沿 X 轴循环移动,注意这里变化的 background-positon 部分的 X 轴值等于按钮宽度,即 140px,这样动画循环播放时就不会造成视觉断层。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>多彩变化的按钮</title>
  </head>
  <body>
    <div class="app">
      <button>戳一下</button>
    </div>
  </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
button{
  width: 140px;
  height: 46px;
  font-size: 16px;
  font-weight: 700;
  color: black;
  border: 2px solid #ffffff;
  border-radius: 10px;
  background-color: #4158D0;
  background-image: linear-gradient(90deg, #4158D0 0%, #C850C0 17%, #e6a731 39%, #8329e2 60%, #3fb75f 80%, #4158D0 100%);
  box-shadow: 0 0 0 2px #000000;
  cursor: pointer;
  transition: all 0.5s ease;
}
button:hover{
  color: #ffffff;
  animation: quick 0.5s linear infinite;
}
@keyframes quick{
  to {
    background-position: 140px;
  }
}
button:active{
  transform: translateY(1px);
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读

我是 Just,这里是「设计师工作日常」,求点赞求关注!skr~ skr~ skr~


http://www.kler.cn/a/231789.html

相关文章:

  • workerman的安装与使用
  • 深入解析Javascript中的this指向
  • ARM 汇编指令
  • 前景理论(Prospect Theory)
  • 从零入门激光SLAM(二十三)——direct_visual_lidar_calibration全型号激光雷达-相机标定包
  • Java 动态代理初步
  • Spark安装(Yarn模式)
  • Prime(VulnHub)
  • 26、Makefile/shell/字符串处理相关练习20240208
  • Spring 的奇幻起源:从 IoC 容器到 Bean 的魔法世界 ✨
  • 《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
  • Leetcode第123场双周赛
  • 【MySQL】学习和总结DCL的权限控制
  • 智慧自助餐饮系统(SpringBoot+MP+Vue+微信小程序+JNI+ncnn+YOLOX-Nano)
  • SASS 官方文档速通
  • TCP和UDP相关问题(重点)(5)——5.TCP三次握手和四次挥手(非常重要)
  • 移动云ONAIR媒体云全解读!媒体内容数字化融合一站式解决方案
  • 小白代码审计入门
  • 每日一题——LeetCode1422.分割字符串的最大得分
  • 在Python中如何定义一个闭包并使用它
  • 跳过mysql5.7密码并重置密码 shell脚本
  • IP风险画像在企业网络统计与安全防范中应用
  • 使用Vue+ ECharts进行动态图表展示
  • jsp教务管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Spring Boot的打包方式:JAR vs. WAR 打包方式
  • office文件转pdf在线预览