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鼠标滑过按钮动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html css移动form表单位置,表
- 下一篇: html页面设置不可点击事件,css怎么