前端很酷的按钮特效,你学会了吗?

简介: 分享代码了,如果觉得不错,可以花费两分钟学习哦 🤪

效果展示


3d89ca8abfe2467b8ee5b7dee6149cf6.gif


代码部分


html


<button>Click</button>


css基础样式


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    font-size: 10px;
    background-color: #ccc;
}
button {
    width: 40rem;
    height: 15rem;
    background-color: black;
    color: white;
    border: none;
    border-radius: 3rem;
    font-size: 9rem;
    font-weight: 700;
    cursor: pointer;
    transition: all .2s;
}
button:hover {
    color: rgb(0, 0, 0);
}


重点部分 css


在CSS3中,我们可以使用transform属性的scale()方法来实现元素的缩放效果。缩放,指的是“缩小”和“放大”的意思


语法


transform: scaleX(x);         /*沿X轴方向缩放*/
transform: scaleY(y);         /*沿Y轴方向缩放*/
transform: scale(x, y);        /*沿X轴和Y轴同时缩放*/


demo


371d01fe775544a48d664842475518be.gif


在CSS3中,我们可以使用transform属性的skew()方法来实现元素的2D旋转效果


语法


transform: skewX(x);         /*沿X轴方向旋转*/
transform: skewY(y);         /*沿Y轴方向旋转*/
transform: skew(x, y);        /*沿X轴和Y轴同时旋转*/


demo


4066052695f74bafb9cbef5b8f91aa3c.gif


现在你应该理解了这两个属性,那么思路就是我们先利用伪元素结合定位以及 skew 属性写出来一个平行四边形,然后再利用 scale 设置 X轴缩放为0,最开始是看不见的,放鼠标放上去之后再把 scale 设置 X轴缩放为1 ,显示出来,再加上过渡 transition ,但是还有点问题,就是有溢出等等,小问题,解决一下,OK,开始了


首先先给button添加相对定位,好让伪元素根据它进行绝对定位,设置z-index为1,层叠较高,设置溢出时隐藏


position: relative;
z-index: 1;
overflow: hidden;


接下来就是 button 的伪元素,注意设置z-index


button:after {
  /*这个属性必须有*/
    content: "";
    background: white;
    /*绝对定位,相对于button*/
    position: absolute;
    z-index: -1;
    /*这样就能再显示结束时不会看到多余的部分*/
    left: -20%;
    right: -20%;
    top: 0;
    bottom: 0;
    /*这里demo演示过,思路也在上面说过*/
    transform: skewX(-45deg) scale(0, 1);
    /*添加过度 0.5s*/
    transition: all 0.5s;
}


当鼠标放到button上时 ,scale(1, 1)


button:hover:after {
    transform: skewX(-45deg) scale(1, 1);
}


完整代码


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>css按钮特效</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            font-size: 10px;
            background-color: #ccc;
        }
        button {
            width: 40rem;
            height: 15rem;
            background-color: black;
            color: white;
            border: none;
            border-radius: 3rem;
            font-size: 9rem;
            font-weight: 700;
            cursor: pointer;
            transition: all .2s;
            position: relative;
            z-index: 1;
            overflow: hidden;
        }
        button:hover {
            color: rgb(0, 0, 0);
        }
        button:after {
            content: "";
            background: white;
            position: absolute;
            z-index: -1;
            left: -20%;
            right: -20%;
            top: 0;
            bottom: 0;
            transform: skewX(-45deg) scale(0, 1);
            transition: all 0.5s;
        }
        button:hover:after {
            transform: skewX(-45deg) scale(1, 1);
        }
    </style>
</head>
<body>
    <button>Click</button>
</body>
</html>


相关文章
|
8月前
|
JavaScript 前端开发
vue前端下载,实现点击按钮弹出本地窗口,选择自定义保存路径
这个不用代码实现(网上也找不到方法可以调出另存为窗口),更改浏览器设置就可以,否则,现在的浏览器都是默认直接保存到下载路径中
674 3
|
4月前
|
前端开发 数据安全/隐私保护
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
本文档详细介绍了HTML表单的多种元素及其用法,包括下拉菜单(`&lt;select&gt;` 和 `&lt;option&gt;`)、文本域(`&lt;textarea&gt;`)、标签解释(`&lt;label&gt;`)、各类按钮(`&lt;button&gt;`)及表单重置功能、无语义布局标签(`&lt;div&gt;` 和 `&lt;span&gt;`)以及字符实体的应用。此外,还提供了一个完整的注册信息表单案例,涵盖个人信息、教育经历和工作经历等部分,展示了如何综合运用上述元素构建实用的表单。
【前端web入门第二天】03 表单-下拉菜单 文本域 label标签 按钮 【附注册信息综合案例】
|
5月前
|
前端开发 JavaScript 开发者
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
本文提供了一个前端JS按钮点击事件、弹出式窗口和遮罩层的实战示例,包括HTML、CSS和JavaScript的具体实现代码,以及功能解析,演示了如何实现按钮点击后触发弹窗显示和遮罩层,并在2秒后自动关闭或点击遮罩层关闭弹窗的效果。
前端JS按钮点击事件、跳出弹窗、遮罩的实战示例
|
5月前
|
前端开发
前端ElementPlus框架中的几种图标按钮使用方式
本文介绍了如何在Element Plus前端框架中使用带有图标的按钮,包括设置按钮大小、图标大小、按钮类型以及如何为图标添加点击事件。
451 0
|
6月前
|
存储 前端开发 JavaScript
前端菜单及按钮权限拦截,实现方案及思路
此实现方案基于vue框架,并需要依赖vue项目相关的库,router、store等等;前端同学要与后端同学协商,常规是让后端返回一个树结构的菜单数据,并且将所有的涉及权限控制的页面path给到后端,如果是按钮,需要把所有的按钮 code 码统一下,这是前期工作,很重要。
|
6月前
|
前端开发 JavaScript PHP
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
技术心得:前端点击按钮,导入excel文件,上传到后台,excel接收和更新数据
75 0
|
6月前
|
前端开发 API
支付系统27-------梳理一下支付按钮,前端的代码
支付系统27-------梳理一下支付按钮,前端的代码
|
8月前
|
JavaScript 前端开发
【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
【5月更文挑战第2天】【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
|
8月前
|
前端开发
Vue+ElementUI前端添加展开收起搜索框按钮
Vue+ElementUI前端添加展开收起搜索框按钮
390 0
|
前端开发
前端学习笔记202305学习笔记第二十天-vue3.0-点击按钮展示添加用户
前端学习笔记202305学习笔记第二十天-vue3.0-点击按钮展示添加用户
58 0