css的transition实现一个hover边框加载的按钮

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css的transition实现一个hover边框加载的按钮相关的知识,希望对你有一定的参考价值。

参考技术A

定义一个如图所示的矩形按钮

为其添加两个伪元素

添加伪类hover:

transition 属性是一个简写属性,用于设置四个过渡属性:

transition-property:规定设置过渡效果的 CSS 属性的名称。
transition-duration:规定完成过渡效果需要多少秒或毫秒。
transition-timing-function:规定速度效果的速度曲线。
transition-delay:定义过渡效果何时开始。
tips:请始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。
transition-timing-function:

伪元素默认的宽高为0,当鼠标悬浮时候,设置一定的过渡时间使其宽高为100%。
上述demo中:
在0.2s内 border-top-color变化,border-right-color推迟0.2s之后完成一个0.2s的过渡。
同理border-bottom-color推迟0.4s,border-left-color推迟0.6s.

demo

鼠标经过一个div时 , 如何让另一个div以过渡效果高度增加

鼠标经过一个div1时 , 如何让另一个div2以过渡效果高度增加 . css能实现吗?

我知道要用transition这个属性添加过渡效果 , 但是这个属性只能当鼠标放在自身上才会生效产生过渡效果 , 也就是 div2:hoverheight:100px才行 . 现在我想要的是当鼠标经过div1时 , 意思就是div1:hover .div1height:100px , 但是这样写transition是不会生效的 , 请问各路大神有什么好办法吗

参考技术A 理论上有实现办法,可以试一下
1.hover时用amimation执行一次css方法@keyframes name。
2.css name方法中用transform动画执行你想要效果。
3.鼠标离开时用同样的逻辑执行另一个方法将样式再还原回去。
参考技术B css实现不了,js可以实现,代码较简单。追问

那能麻烦您贴下代码嘛 , 用js

参考技术C 就把div2放在div1里面,.div:hover .div2就行了追问

这样div2会有过渡效果吗? 我是放在div1里面的啊 . 没有用!

追答

css可以实现的,我还专门写了一遍

 .div1
width:100px;
height:100px;
background-color:red;

.div2
width:50px;
height:50px;
background-color:blue;
transition:height 2s;

.div1:hover .div2
height:200px;

本回答被提问者和网友采纳
参考技术D 这么简单的问题还发出来,看流程:onmouseover☞设置2个参数一个speed,一个width,鼠标经过时改变上面2个参数,当鼠标移出时,恢复到初始值。追答

我没看清题目就回答是我的错js比较好实现css不知道

以上是关于css的transition实现一个hover边框加载的按钮的主要内容,如果未能解决你的问题,请参考以下文章

CSS 边框和 :hover 动态伪类

CSS 六边形边框hover闭合动画效果

禁用 :hover CSS 在移动设备上

CSS 鼠标经过边框变色

css动画从上到下弹出下载按钮

CSS如何实现动画?