在當今互聯網時代,網站已經成為企業展示自己的重要窗口。為了更好的吸引用戶,提升用戶體驗,網站的設計越來越注重動效,有效的動效能夠大大提高用戶留存率。下面我們將從多個方面詳細闡述如何用動效提升網頁體驗。
一、 網站頭部動效的應用
網站頭部是網站整體設計的重點,具有很多的設計技巧。頭部的設計常用的動效有光影動效、背景色漸變動效、菜單欄下拉動效等等。通過這些動效,能夠增加網站的時尚感與視覺魅力,讓用戶更願意停留在網站首頁上。
1. 光影動效
<style>
.shinning {
position: relative;
}
.shinning:before {
content: "";
position: absolute;
width: 200%;
height: 200%;
background: radial-gradient(ellipse at center, rgba(255,255,255,0) 0%, rgba(0,0,0,0.75) 70%);
top: -50%;
left: -50%;
opacity: 0;
z-index: 0;
animation: shine 5s infinite;
}
@keyframes shine {
0% {
transform: rotate(0deg);
opacity: 0;
}
50% {
opacity: 1;
}
100% {
transform: rotate(360deg);
opacity: 0;
}
}
</style>
<div class="shinning">
<img src="logo.png"/>
</div>
這是一個光影動效的代碼示例,使用radial-gradient背景漸變實現光影效果,通過transform和opacity屬性配合@keyframes動畫實現了光影的循環閃爍效果。該效果常用於網站logo周圍,能夠增加品牌的時尚感與藝術感。
2. 菜單欄下拉動效
<style>
.nav {
position: relative;
display: flex;
justify-content: center;
align-items: center;
height: 50px;
background: #333;
color: #fff;
font-size: 16px;
}
.nav:hover .submenu {
opacity: 1;
transform: translateY(0);
}
.submenu {
position: absolute;
top: 100%;
left: 0%;
width: 180px;
background: #333;
opacity: 0;
transform: translateY(-10px);
transition: opacity 0.5s, transform 0.5s;
}
.submenu a {
display: block;
padding: 10px;
text-decoration: none;
color: #fff;
}
.submenu a:hover {
background: #666;
}
</style>
<div class="nav">
Hover Me
<div class="submenu">
<a href="#">Submenu 1</a>
<a href="#">Submenu 2</a>
<a href="#">Submenu 3</a>
</div>
</div>
上面這個下拉菜單的代碼示例,使用flex布局實現菜單欄的水平居中,在:hover狀態下,通過opacity和transform屬性漸變顯示下拉菜單。通過transition屬性實現動效的緩動效果,使動效更加自然,舒適。
二、 按鈕動效的應用
按鈕是網頁交互的主要元素,而動效對於按鈕的交互與反饋至關重要。如何給按鈕加入有趣的動效?下面我們將分享幾個實用的按鈕動效。
1. 徑向呼吸動效按鈕
<style>
.btn {
position: relative;
display: inline-block;
padding: 10px 20px;
font-size: 16px;
color: #fff;
background: #333;
outline: none;
border: none;
cursor: pointer;
transition: transform 0.3s;
overflow: hidden;
}
.btn:hover {
transform: scale(1.1);
}
.btn:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
background: radial-gradient(#fff 15%, transparent 16%);
background-size: 1500% 1500%;
top: 0;
left: 0;
opacity: 0;
animation: btn-animate 3s linear infinite;
}
@keyframes btn-animate {
0% {
background-position: 0 0;
opacity: 0;
}
100% {
background-position: 300% 0;
opacity: 1;
}
}
</style>
<button class="btn">Click Me</button>
這個代碼示例實現了一個徑向呼吸動效按鈕,通過radial-gradient背景漸變實現呼吸效果,同樣使用transform屬性在:hover狀態下增大按鈕的縮放比例。通過:before偽類給按鈕添加呼吸效果的背景漸變,使用animation屬性循環播放呼吸動畫。
2. 旋轉縮放動效按鈕
<style>
.btn {
position: relative;
display: inline-block;
padding: 10px 20px;
font-size: 16px;
color: #fff;
background: #333;
outline: none;
border: none;
cursor: pointer;
overflow: hidden;
}
.btn:hover span {
animation: btn-rotate 1s forwards;
}
.btn span {
display: inline-block;
transform: scale(1);
position: relative;
z-index: 2;
}
.btn span:before,
.btn span:after {
content: "";
display: block;
position: absolute;
width: 60%;
height: 2px;
background-color: #fff;
transform-origin: center;
transition: transform 0.3s;
}
.btn span:before {
top: 0;
left: 50%;
margin-left: -30%;
transform: rotate(0deg);
}
.btn span:after {
bottom: 0;
left: 50%;
margin-left: -30%;
transform: rotate(0deg);
}
@keyframes btn-rotate {
0% {
transform: scale(1) rotate(0deg);
}
50% {
transform: scale(0.8) rotate(720deg);
}
100% {
transform: scale(1) rotate(1080deg);
}
}
</style>
<button class="btn"><span>Click Me</span></button>
這個按鈕動效通過transform和animation屬性配合實現。在按鈕:hover狀態下,觸發rotate動畫,使按鈕span元素繞中心軸旋轉。通過:before和:after偽類給按鈕添加兩條垂直的下劃線,通過transform-origin屬性設置旋轉中心。通過@skeyframes和transform屬性實現按鈕的旋轉動畫。
三、 頁面元素的出現動效
頁面元素的出現動效能夠增加網頁的動態效果,使得元素的出現不再單調無味,下面我們將分享幾個簡單實用的頁面元素出現動效。
1. 漸進漸出動效
<style>
.fade-in {
opacity: 0;
transform: translateY(25%);
transition: opacity 0.5s, transform 0.5s;
}
.fade-in.show {
opacity: 1;
transform: translateY(0);
}
</style>
<div class="fade-in">Content</div>
<script>
// 通過js添加show類名,實現元素的出現
document.querySelector('.fade-in').classList.add('show');
</script>
使用opacity和transform屬性實現元素的漸進漸出動效,使用transition屬性使動效具有漸變效果。在js中通過classList.add方法添加show類名,實現元素出現動效。
2. 下滑動效
<style>
.slide-down {
opacity: 0;
transform: translateY(-100%);
transition: opacity 0.5s, transform 0.5s;
}
.slide-down.show {
opacity: 1;
transform: translateY(0);
}
</style>
<div class="slide-down">Content</div>
<script>
// 通過js添加show類名,實現元素的出現
document.querySelector('.slide-down').classList.add('show');
</script>
這個下滑動效與上面的漸進漸出動效類似,同樣使用opacity和transform屬性實現元素的滑入滑出動效,通過transition屬性使動效具有緩動效果。
結語
以上是我們簡單分享的幾個用動效提升網頁體驗的實例。動效是網頁設計的重要組成部分,通過動效的運用可以大大提升網站的視覺和交互效果,從而提高用戶留存率。建議在實現動效時適當考慮性能問題,以保證在不影響用戶體驗的前提下實現優雅的動效。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249085.html