首頁  >  文章  >  web前端  >  手把手教你使用CSS3實作按鈕懸停閃爍動態特效

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

青灯夜游
青灯夜游原創
2021-08-24 18:02:304614瀏覽

在之前的文章《純CSS3怎麼創建瀑布流佈局? columns方法淺析》中,我們介紹了使用CSS3 column系列屬性創建瀑布流佈局的方法,感興趣的朋友可以去了解一下~

而今天我們來看看使用CSS3怎麼給按鈕加入動態效果,實現一個按鈕懸停閃亮陰影動畫效果,讓網頁互動性更強,更吸引人!

我們先來看看效果圖

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

下面我們來研究一下是怎麼實現這個效果的:

首先是HTML部分,定義一個div容器包裹button按鈕,在按鈕中使用標籤對來包含按鈕文字

<div id="shiny-shadow">
  <button><span>鼠标悬停</span></button>
</div>

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

##然後開始定義css樣式來進行修飾:調整版面樣式、色彩範圍

#shiny-shadow {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background: #1c2541;
}

button {
  border: 2px solid white;
  background: transparent;
  text-transform: uppercase;
  color: white;
  padding: 15px 50px;
  outline: none;
}

span {
  z-index: 20;  
}

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

接著製作一閃而過的覆蓋層:

  • 使用

    :after選擇器製作一個具有透明度的長方形,讓它相對於button按鈕進行絕對定位

  • button {
      position: relative;
    }
    button:after {
    	content: &#39;&#39;;
    	display: block;
    	position: absolute;
    	background: white;
    	width: 50px;
    	height: 125px;
    	opacity: 20%;
    }

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

  • 在最終效果中,一閃而過的是傾斜的長方形;因此我們加上一個

    transform: rotate(-45deg);樣式

  • button:after {
    	transform: rotate(-45deg);
    }

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

  • #使用top屬性和left屬性控制長方形的位置

手把手教你使用CSS3實作按鈕懸停閃爍動態特效


手把手教你使用CSS3實作按鈕懸停閃爍動態特效

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

##
button:after {
	top: -2px;
	left: -1px;
}

手把手教你使用CSS3實作按鈕懸停閃爍動態特效

手把手教你使用CSS3實作按鈕懸停閃爍動態特效最後實作按鈕懸停閃爍動畫特效

手把手教你使用CSS3實作按鈕懸停閃爍動態特效因為是懸停效果,所以要使用到

:hover

選擇器;我們要設定滑鼠停留時長方形的位置

#

button:hover:after {
  left: 120%;
}

##################################################################### #這樣突然變換位置不是我們想要的效果,可以使用###transition###屬性添加一個過渡效果,因為該屬性是css3的一個新屬性,要添加前綴來兼容其他瀏覽器###### ###
button:hover:after {
  left: 120%;
  transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
   -webkit-transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
}
###################大致實作了,再修飾一下。 ############只想要button按鈕範圍內顯示長方形覆蓋層,那麼可為button標籤新增一個###overflow: hidden;###樣式###
button {
  overflow: hidden;
}
##### #################可以看出覆蓋層的位置還有一點問題,最終效果中覆蓋層一開始是不顯示的,我們使用top屬性和left屬性來調整一下###
button:after {
	top: -36px;
	left: -100px;
}
############OK,大功告成!以下附上完整程式碼:###
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<style type="text/css">
			#shiny-shadow {
				display: flex;
				align-items: center;
				justify-content: center;
				height: 100vh;
				background: #1c2541;
			}

			button {
				border: 2px solid white;
				background: transparent;
				text-transform: uppercase;
				color: white;
				padding: 15px 50px;
				outline: none;
				position: relative;
				overflow: hidden;
			}

			span {
				z-index: 20;
			}

			button:after {
				content: &#39;&#39;;
				display: block;
				position: absolute;
				background: white;
				width: 50px;
				height: 125px;
				opacity: 20%;
				transform: rotate(-45deg);
				top: -36px;
				left: -100px;
			}

			button:hover:after {
				left: 120%;
				transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
				-webkit-transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
			}
		</style>
	</head>
	<body>
		<div id="shiny-shadow">
			<button><span>鼠标悬停</span></button>
		</div>
	</body>
</html>
###PHP中文網路平台有非常多的影片教學資源,歡迎大家學習《###css影片教學###》! ###

以上是手把手教你使用CSS3實作按鈕懸停閃爍動態特效的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn