有趣的CSS - 按钮文字上下滑动

整体效果

这个按钮效果主要使用 :hover 伪选择器以及 transition 过渡属性来实现两个子元素上下过渡的效果。

此效果可以在主入口按钮、详情或者更多等按钮处使用,增加一些鼠标的交互效果。


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

核心代码

html 代码

<button>
  <span class="defalut">鼠标放上来</span>
  <span class="hover">点我吧</span>
</button>

button 标签主体,包裹两个子元素 span ,分别为 .defalut.hover

css 部分代码

*{
   
  transition: .5s;
}
button{
   
  width: 110px;
  height: 42px;
  color: #ffffff;
  background-color: #457356;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s linear;
  position: relative;
  overflow: hidden;
}
.defalut,.hover{
   
  width: 100%;
  height: 100%;
  line-height: 42px;
  letter-spacing: 2px;
  display: block;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}
.hover{
   
  position: absolute;
  left: 0;
  top: 100%;
}
button:hover .defalut{
   
  transform: translateY(-100%);
}
button:hover .hover{
   
  top: 0;
}

css 部分主要通过 :hover 伪选择器来分别设置两个 span 子元素的样式,然后配合 transform 以及定位来实现两个 span 的上下移动。

注意:全局定义了 transition: .5s


完整代码如下

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>
        <span class="defalut">鼠标放上来</span>
        <span class="hover">点我吧</span>
      </button>
    </div>
  </body>
</html>

css 样式

/** style.css **/
*{
   
  margin: 0;
  padding: 0;
  list-style: none;
  transition: .5s;
}
html,body{
   
  background-color: #efefef;
  color: #fff;
  font-size: 14px;
}
.app{
   
  width: 100%;
  height: 100vh;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
button{
   
  width: 110px;
  height: 42px;
  color: #ffffff;
  background-color: #457356;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s linear;
  position: relative;
  overflow: hidden;
}
.defalut,.hover{
   
  width: 100%;
  height: 100%;
  line-height: 42px;
  letter-spacing: 2px;
  display: block;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}
.hover{
   
  position: absolute;
  left: 0;
  top: 100%;
}
button:hover .defalut{
   
  transform: translateY(-100%);
}
button:hover .hover{
   
  top: 0;
}

页面渲染效果

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


[1] 原文阅读

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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-07 04:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-07 04:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-07 04:28:02       82 阅读
  4. Python语言-面向对象

    2024-02-07 04:28:02       91 阅读

热门阅读

  1. 【从零开始学设计模式】第一章_设计模式简介

    2024-02-07 04:28:02       58 阅读
  2. 【数论】矩阵快速幂

    2024-02-07 04:28:02       50 阅读
  3. 深度学习预备知识2——数据预处理

    2024-02-07 04:28:02       53 阅读
  4. C语言:斐波那契数列中的合数

    2024-02-07 04:28:02       56 阅读
  5. 学习使用shell脚本获取进程号并杀死进程

    2024-02-07 04:28:02       45 阅读
  6. iOS面试题

    2024-02-07 04:28:02       50 阅读
  7. nodejs生成有样式的excel

    2024-02-07 04:28:02       48 阅读
  8. 一台服务器可以支持多少TCP连接

    2024-02-07 04:28:02       44 阅读
  9. SOLID原理:用Golang的例子来解释

    2024-02-07 04:28:02       57 阅读
  10. 【go】gorm\xorm\ent多表联查

    2024-02-07 04:28:02       55 阅读
  11. 代码随想录算法训练营第二十四天| 77. 组合

    2024-02-07 04:28:02       52 阅读
  12. 踩坑实录(First Day)

    2024-02-07 04:28:02       47 阅读
  13. 2024/2/5

    2024-02-07 04:28:02       45 阅读
  14. Linux内核与驱动面试经典“小”问题集锦(3)

    2024-02-07 04:28:02       51 阅读