|
|
|
|
|
關(guān)于按鈕鼠標(biāo)懸停效果,此前曾介紹過(guò)按鈕背景顏色漸變動(dòng)畫(huà),本文將介紹另一個(gè)按鈕鼠標(biāo)懸停效果。
本文介紹的CSS3實(shí)現(xiàn)的按鈕鼠標(biāo)懸停效果,這個(gè)效果主要體現(xiàn)在按鈕文字的過(guò)渡動(dòng)畫(huà)上。
效果如圖
實(shí)例介紹
CSS實(shí)現(xiàn)的扁平按鈕,當(dāng)鼠標(biāo)移到按鈕上時(shí),按鈕向上彈起,同時(shí)按鈕文字顯示呈波浪走動(dòng)的過(guò)渡動(dòng)畫(huà)。當(dāng)鼠標(biāo)移開(kāi)按鈕時(shí),按鈕回落原位,同時(shí)按鈕文字顯示呈波浪走動(dòng)的過(guò)渡動(dòng)畫(huà)。
HTML代碼
HTML代碼很簡(jiǎn)單,一個(gè)a
標(biāo)簽就是一個(gè)按鈕,其class屬性為button
。reverse
屬性表示反向運(yùn)動(dòng)的動(dòng)畫(huà),fast
屬性表示動(dòng)畫(huà)速度較快,而dark
和white
屬性表示按鈕的顏色。
代碼如下:
<body>
<a href="" class="button">Button</a>
<a href="" class="button reverse dark">Reverse</a>
<a href="" class="button fast white">Fast</a>
</body>
CSS代碼
CSS代碼中,主要類(lèi)說(shuō)明。
.button
定義按鈕樣式
.dark
、.white
定義按鈕顏色。
.fast
定義動(dòng)畫(huà)速度。
div
和span
定義按鈕文字樣式。
.button:hover
定義按鈕鼠標(biāo)懸停樣式。
主要代碼如下:
.button.dark {
--background: #2F3545;
--shadow: 0 2px 8px -1px rgba(21, 25, 36, 0.32);
--shadow-hover: 0 4px 20px -2px rgba(21, 25, 36, 0.5);
}
.button.white {
--background: #fff;
--text: #275efe;
--shadow: 0 2px 8px -1px rgba(18, 22, 33, 0.04);
--shadow-hover: 0 4px 20px -2px rgba(18, 22, 33, 0.12);
}
.button.fast {
--duration: .32s;
}
.button {
--background: #275efe;
--text: #fff;
--font-size: 16px;
--duration: .44s;
--move-hover: -4px;
--shadow: 0 2px 8px -1px rgba(39, 94, 254, 0.32);
--shadow-hover: 0 4px 20px -2px rgba(39, 94, 254, 0.5);
--font-shadow: var(--font-size);
padding: 16px 32px;
font-family: "Roboto";
font-weight: 500;
line-height: var(--font-size);
border-radius: 24px;
display: block;
outline: none;
text-decoration: none;
font-size: var(--font-size);
letter-spacing: 0.5px;
background: var(--background);
color: var(--text);
box-shadow: var(--shadow);
transform: translateY(var(--y)) translateZ(0);
transition: transform var(--duration) ease, box-shadow var(--duration) ease;
}
.button div {
display: flex;
overflow: hidden;
text-shadow: 0 var(--font-shadow) 0 var(--text);
}
.button div span {
display: block;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
font-style: normal;
transition: transform var(--duration) ease;
transform: translateY(var(--m)) translateZ(0);
}
.button div span:nth-child(2) {
transition-delay: 0.1s;
}
.button div span:nth-child(4) {
transition-delay: 0.2s;
}
.button div span:nth-child(6) {
transition-delay: 0.3s;
}
.button div span:nth-child(8) {
transition-delay: 0.4s;
}
.button div span:nth-child(10) {
transition-delay: 0.5s;
}
.button:hover {
--y: var(--move-hover);
--shadow: var(--shadow-hover);
}
.button:hover span {
--m: calc(var(--font-size) * -1);
}
.button.reverse {
--font-shadow: calc(var(--font-size) * -1);
}
.button.reverse:hover span {
--m: calc(var(--font-size));
}
JavaScript
本實(shí)例用到一點(diǎn)JavaScript代碼,這是實(shí)現(xiàn)過(guò)渡動(dòng)畫(huà)所需的代碼。
document.querySelectorAll('.button').forEach(
button => button.innerHTML = '<div><span>'
+ button.textContent.trim().split('').join('</span><span>')
+ '</span></div>'
);
總結(jié)
本文介紹了一個(gè)簡(jiǎn)單的CSS按鈕鼠標(biāo)懸停效果,當(dāng)鼠標(biāo)移到按鈕上時(shí),文字呈波浪過(guò)渡動(dòng)畫(huà)顯示。喜歡該效果的朋友可以收藏本頁(yè),或下載源碼直接使用。
您可能對(duì)以下文章也感興趣
相關(guān)文章