首页 > 其他分享 >CSS 实现鼠标悬浮边框线动画效果

CSS 实现鼠标悬浮边框线动画效果

时间:2023-10-20 16:36:45浏览次数:39  
标签:鼠标 color ease transition width 边框线 border CSS out

一、transition

CSS transition(过渡效果)详解

CSS 中提供了 5 个有关过渡的属性,如下所示:

  • transition-property:设置元素中参与过渡的属性;
  • transition-duration:设置元素过渡的持续时间;
  • transition-timing-function:设置元素过渡的动画类型;
  • transition-delay:设置过渡效果延迟的时间,默认为 0;

  同时,transition:简写属性,用于同时设置上面的四个过渡属性。

二、css代码实现

方式一

右上-左下同步

.item {
                width: 100%;
                height: 89px;
                box-sizing: border-box;
                margin-bottom: 15px;
                border: 1px solid transparent;
                position: relative;
                &::before,
                &::after {
                    box-sizing: border-box;
                    position: absolute;
                    content: "";
                    border: 1px solid transparent;
                    width: 0;
                    height: 0;
                }
                &::before {
                    top: 0;
                    left: 0;
                }

                &::after {
                    bottom: 0;
                    right: 0;
                }
                &:hover::before {
                    width: 100%;
                    height: 100%;
                    border-top-color: xxx;
                    border-right-color: xxx;
                    transition: 
                        width 0.2s ease-out,
                        height 0.2s ease-out 0.2s;
                }

                &:hover::after {
                    width: 100%;
                    height: 100%;
                    border-bottom-color: xxx;
                    border-left-color: xxx;
                    transition: 
                        // border-color 0s ease-out calc(0.4s / 2),
                        width 0.2s ease-out,
                        height 0.2s ease-out 0.2s;
                }
            }

方式二

上右下左顺序

&:hover::before {
                    width: 100%;
                    height: 100%;
                    border-top-color: xxx;
                    border-right-color: xxx;
                    transition: 
                        width calc(0.4s / 4) ease-out,
                        height calc(0.4s / 4) ease-out calc(0.4s / 4);
                }

                &:hover::after {
                    width: 100%;
                    height: 100%;
                    border-bottom-color: xxx;
                    border-left-color: xxx;
                    transition: 
                        // border-color 0s ease-out calc(0.4s / 2),
                        width calc(0.4s / 4) ease-out calc(0.4s / 2),
                        height calc(0.4s / 4) ease-out calc(0.4s / 4 * 3);
                }

其实本质是通过定义transition的时间与延迟,达到不同效果

想实现更复杂的动画效果,使用css animation属性亦可

 

标签:鼠标,color,ease,transition,width,边框线,border,CSS,out
From: https://www.cnblogs.com/younghxp/p/17777408.html

相关文章

  • CSS3属性详解(一)文本 盒模型中的 box-ssize 属性 处理兼容性问题:私有前缀 边框 背景属
    CSS3是用于为HTML文档添加样式和布局的最新版本的层叠样式表(CascadingStyleSheets)。下面是一些常用的CSS3属性及其详细解释:border-radius:设置元素的边框圆角的半径。可以使用四个值设置四个不同的圆角半径,也可以只使用一个值来设置统一的圆角。box-shadow:创建一个元素的阴影效果......
  • HTML5+CSS3+移动web 前端开发入门笔记(一)
    千古前端图文教程千古前端图文教程git的使用Git是一个分布式版本控制系统,它的作用主要包括以下几个方面:版本管理:Git可以跟踪文件的修改历史,记录每次提交的内容、时间和作者等信息。通过Git,开发人员可以轻松地查看和比较不同版本之间的差异,回滚到历史版本或者创建新的分支。多人协作......
  • 利用 CSS 的 clip-path 属性快速画三角形、气泡框
    clip-path 结合polygon函数,可以快速切出一个三角形、气泡框。a.三角形有三个顶点,因此 polygon 需要传三个参数,每个参数是顶点的x和y轴位置百分比:#triangle-1{-webkit-clip-path:polygon(50%0,100%100%,0100%);clip-path:polygon(50%0,100%100%,......
  • CSS水平垂直居中
    使用flex布局<divclass="content"> <divclass="box"> </div></div>.content{height:100vh;display:flex;justify-content:center;align-items:center;}【注意】若垂直居中失效,是因为content盒子缺少高度,height:100%无法撑开盒子......
  • 使用CSS的cross-fade()实现基于url的网页背景图半透明显示
     参考链接:https://www.zhangxinxu.com/wordpress/2020/07/css-cross-fade-background-image-opacity/引子在开发过程中,碰到了一个比较特别的情况,就是使用url()背景图像,同时又希望background-image背景图片是半透明的,作为网页的半透明背景图,这时候使用opacity,如果使用某一个大......
  • css元素水平垂直居中
    1、单行文字的处理<html><head><style>/*要点,设置行高和DIV的行高一行*/#div{background-color:antiquewhite;height:100px;line-height:100px;text-alig......
  • css 渐变与背景裁剪
    1.css的渐变 线性渐变/*线性渐变*/.one{width:300px;height:300px;background:linear-gradient(toright,rgb(244,239,239)2%,rgb(0,9,0)5%,rgb(244,239,239)9%);border:1pxsolidred;} <divclass="one"&g......
  • css多个元素一行排列的方法
    1、弹性盒子模型(FlexBox),不考虑兼容性问题的情况下,建议新手直接使用这种模式,简单,最重要的是元素不会浮动,不会影响后面的元素的布局,比如下面代码中的我在底层这个div的显示没有任何影响。<html><head><style>#tasklist{background-col......
  • 你也许不再需要使用 CSS Media Queries(媒体查询)了
    你也许不再需要使用CSSMediaQueries(媒体查询)了最近,CSS引入了一项新功能:ContainerQueries。它可以替代MediaQueries并实现MediaQueries无法胜任的任务。超越MediaQueries的功能让我们想象一个场景:在网页上有两列卡片。我们希望在卡片宽度较窄时,卡片内部呈上下布局......
  • html+css3+anime.js实现线条来回滑动且渐隐动画
    效果: 代码:<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"/><metaname="viewport"content="width=device-width,initial-sc......