欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > CSS >内容正文

CSS

html鼠标点击伪类,CSS伪类:CSS3鼠标滑过按钮动画

发布时间:2024/1/23 CSS 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 html鼠标点击伪类,CSS伪类:CSS3鼠标滑过按钮动画 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

按钮,对开发者而言,是非常常见的一个功能。前端通常会对按钮加入一些操作交互样式,增加一些用户体验。

比如:hover样式、点击样式、loading样式等。下面我们通过简单示例在学习一下css3动画和css伪类。

示例一

按钮一

position: relative;

width: 100px;

height: 40px;

border: 1px solid #46b0ff;

background: none;

cursor: pointer;

}

button:after{

position: absolute;

content: '';

width: 100%;

height: 100%;

top: 0;

left: 0;

}

.btn-1:after{

opacity: 0;

background: #46b0ff;

transition: all .3s;

z-index: -1;

}

.btn-1:hover:after{

opacity: 1;

}

解析:

1、利用伪类作为鼠标:hover事件后,按钮的背景,这里用到了相对定位(relative)和绝对定位(absolute)

切记:使用绝对定位的元素,父元素一定要用相对定位,否则元素会一直向上找相对定位的元素,直至根节点。

2、这里用transition对:hover事件动画进行描述,0.3s完成动画,改变:after的透明度。all是所有行为。

当然,这里我们还有更简单是实现方式,不用类型,直接改变背景也是ok的,请看代码:

按钮一

position: relative;

width: 100px;

height: 40px;

border: 1px solid #46b0ff;

background: none;

cursor: pointer;

background: rgba(70, 176, 255, 0);

transition: all 1s;

}

.btn-1:hover{

background: rgba(70, 176, 255, 1);

}

ok,我们在示例一的基础上,更进一步,请看示例二

示例二

按钮二

/* 这里省略上方的公共样式 */

.btn-2:after{

width: 0;

background: #f13f84;

transition: all .3s;

z-index: -1;

}

.btn-2:hover:after{

width: 100%;

}

解析:

1、这里和示例一其实类似,不过这里是改变伪类的宽度。

2、以此类推,我们可以改变伪类的高度,就可以看到向下扩展的动画了。

按钮三

/* 这里省略上方的公共样式 */

.btn-2:after{

width: 0;

background: #f13f84;

transition: all .3s;

z-index: -1;

}

.btn-2:hover:after{

width: 100%;

}

这样就有一个疑问,如何让伪类从右至左,或者从下至上呢?

按钮四

按钮五

/* 这里省略上方的公共样式 */

button:after{

position: absolute;

content: '';

width: 100%;

height: 100%;

top: 0;

left: 0;

}

.btn-4:after{

height: 0;

background: #00b7a3;

transition: all .3s;

z-index: -1;

bottom: 0;

top: initial

}

.btn-4:hover:after{

height: 100%;

}

.btn-5:after{

width: 0;

background: #00b7a3;

transition: all .3s;

z-index: -1;

right: 0;

left: initial

}

.btn-5:hover:after{

width: 100%;

}

其实也是非常简单,我们改变伪类的初始位置,比如从下至上,那么我们就让元素最开始就在最下方bottom: 0,然后改变高度,就可以看到效果是从下向上延时了,同理从右至左也是如此。

有没有从中学到呢?

其实还有其他办法可以实现,比如从左至右,我们可以让伪类最开始就100%宽度,但是,left刚刚是按钮的反方向,然后动画让left:0

请看代码:

按钮二

...

/* 这里省略上方的公共样式 */

.btn-2:after{

left: -100px;

background: #f13f84;

transition: all .3s;

z-index: -1;

}

.btn-2:hover:after{

left: 0;

}

这样的效果肯定是不尽人意的,鼠标没有指上去时,居然在左边可以看到伪类,其实在button上面添加超出隐藏即可

button{

...

overflow: hidden;

}

下面我们对其进行拓展,展示更高阶的示例

示例三

按钮六

按钮七

...

/* 这里省略上方的公共样式 */

.btn-6:after{

width: 0;

background: #ff9900;

transition: all .3s;

z-index: -1;

left: 50%;

transform: translateX(-50%);

}

.btn-6:hover:after{

width: 100%;

}

.btn-7:after{

height: 0;

background: #00b7a3;

transition: all .3s;

z-index: -1;

top: 50%;

transform: translateY(-50%);

}

.btn-7:hover:after{

height: 100%;

}

解析:

1、这里先让伪类:after,水平居中或垂直居中

/* 水平居中 */

left: 50%;

transform: translateX(-50%);

/* 垂直居中 */

top: 50%;

transform: translateY(-50%);

2、在通过:hover改变宽度或者高度,即可形成上图的动画效果

通过上面的效果,我们可以更进一步,请看下列代码

示例四

按钮八

...

/* 这里省略上方的公共样式 */

.btn-8:after{

height: 0;

width: 0;

background: #f13f84;

transition: all .3s;

z-index: -1;

top: 50%;

left: 50%;

border-radius: 100%;

transform: translate(-50%, -50%);

overflow: hidden;

opacity: .3;

}

.btn-8:hover:after{

height: 300px;

width: 300px;

opacity: 1;

}

解析:

1、伪类元素:after水平垂直居中

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

2、动画改变宽度高度(和之前示例不一样的是,宽高必须大于按钮的宽度,并且是圆形)

3、超出button部分隐藏即可

总结

本小节到此就结束了,是不是觉得很简单呢?有兴趣爱钻研的小伙伴是不是发现还可以拓展呢?比如:上下左右同时延时效果,可以加入倾斜,效果又不一样了。

通过本小节,你学到了什么?

1、伪类元素灵活运用

2、transition的作用

3、:hover鼠标移入动画

4、元素如何水平垂直居中

小伙伴们,有问题可以评论区留言哦,欢迎大家点评。

总结

以上是生活随笔为你收集整理的html鼠标点击伪类,CSS伪类:CSS3鼠标滑过按钮动画的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。