html鼠标点击伪类,CSS伪类:CSS3鼠标滑过按钮动画
前言
按鈕,對開發(fā)者而言,是非常常見的一個(gè)功能。前端通常會(huì)對按鈕加入一些操作交互樣式,增加一些用戶體驗(yàn)。
比如:hover樣式、點(diǎn)擊樣式、loading樣式等。下面我們通過簡單示例在學(xué)習(xí)一下css3動(dòng)畫和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、利用偽類作為鼠標(biāo):hover事件后,按鈕的背景,這里用到了相對定位(relative)和絕對定位(absolute)
切記:使用絕對定位的元素,父元素一定要用相對定位,否則元素會(huì)一直向上找相對定位的元素,直至根節(jié)點(diǎn)。
2、這里用transition對:hover事件動(dòng)畫進(jìn)行描述,0.3s完成動(dòng)畫,改變:after的透明度。all是所有行為。
當(dāng)然,這里我們還有更簡單是實(shí)現(xiàn)方式,不用類型,直接改變背景也是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,我們在示例一的基礎(chǔ)上,更進(jìn)一步,請看示例二
示例二
按鈕二
/* 這里省略上方的公共樣式 */
.btn-2:after{
width: 0;
background: #f13f84;
transition: all .3s;
z-index: -1;
}
.btn-2:hover:after{
width: 100%;
}
解析:
1、這里和示例一其實(shí)類似,不過這里是改變偽類的寬度。
2、以此類推,我們可以改變偽類的高度,就可以看到向下擴(kuò)展的動(dòng)畫了。
按鈕三
/* 這里省略上方的公共樣式 */
.btn-2:after{
width: 0;
background: #f13f84;
transition: all .3s;
z-index: -1;
}
.btn-2:hover:after{
width: 100%;
}
這樣就有一個(gè)疑問,如何讓偽類從右至左,或者從下至上呢?
按鈕四
按鈕五
/* 這里省略上方的公共樣式 */
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%;
}
其實(shí)也是非常簡單,我們改變偽類的初始位置,比如從下至上,那么我們就讓元素最開始就在最下方bottom: 0,然后改變高度,就可以看到效果是從下向上延時(shí)了,同理從右至左也是如此。
有沒有從中學(xué)到呢?
其實(shí)還有其他辦法可以實(shí)現(xiàn),比如從左至右,我們可以讓偽類最開始就100%寬度,但是,left剛剛是按鈕的反方向,然后動(dòng)畫讓left:0
請看代碼:
按鈕二
...
/* 這里省略上方的公共樣式 */
.btn-2:after{
left: -100px;
background: #f13f84;
transition: all .3s;
z-index: -1;
}
.btn-2:hover:after{
left: 0;
}
這樣的效果肯定是不盡人意的,鼠標(biāo)沒有指上去時(shí),居然在左邊可以看到偽類,其實(shí)在button上面添加超出隱藏即可
button{
...
overflow: hidden;
}
下面我們對其進(jìn)行拓展,展示更高階的示例
示例三
按鈕六
按鈕七
...
/* 這里省略上方的公共樣式 */
.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改變寬度或者高度,即可形成上圖的動(dòng)畫效果
通過上面的效果,我們可以更進(jìn)一步,請看下列代碼
示例四
按鈕八
...
/* 這里省略上方的公共樣式 */
.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、動(dòng)畫改變寬度高度(和之前示例不一樣的是,寬高必須大于按鈕的寬度,并且是圓形)
3、超出button部分隱藏即可
總結(jié)
本小節(jié)到此就結(jié)束了,是不是覺得很簡單呢?有興趣愛鉆研的小伙伴是不是發(fā)現(xiàn)還可以拓展呢?比如:上下左右同時(shí)延時(shí)效果,可以加入傾斜,效果又不一樣了。
通過本小節(jié),你學(xué)到了什么?
1、偽類元素靈活運(yùn)用
2、transition的作用
3、:hover鼠標(biāo)移入動(dòng)畫
4、元素如何水平垂直居中
小伙伴們,有問題可以評論區(qū)留言哦,歡迎大家點(diǎn)評。
總結(jié)
以上是生活随笔為你收集整理的html鼠标点击伪类,CSS伪类:CSS3鼠标滑过按钮动画的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html css移动form表单位置,表
- 下一篇: html页面设置不可点击事件,css怎么