天天看點

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

這是一款使用css3 transition制作的導航菜單背景牧戶動畫特效。

HTML

7個demo使用了相同的html結構:

<ul class="bmenu">

<li><a href="#">About</a></li>

<li><a href="#">Illustrations</a></li>

<li><a href="#">Photography</a></li>

<li><a href="#">Web Design</a></li>

<li><a href="#">Personal Projects</a></li>

<li><a href="#">Contact</a></li>

</ul>

CSS

通用css部分如下:

.bmenu{

padding: 0px;

margin: 0 0 10px 0;

position: relative;

}

.bmenu li{

font-size: 50px;

display: block;

}

EXAMPLE 1

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

在第一個demo中,我們希望菜單項在開始時是模糊的。為了做到這一點,我們給超連結元素透明的顔色和白色的文字陰影。并為所有的屬性添加transitions。

.bmenu li a{

color: transparent;

display: block;

text-transform: uppercase;

text-shadow: 0px 0px 5px #fff;

letter-spacing: 1px;

-webkit-transition: all 0.3s ease-in-out;

-moz-transition: all 0.3s ease-in-out;

-o-transition: all 0.3s ease-in-out;

-ms-transition: all 0.3s ease-in-out;

transition: all 0.3s ease-in-out;

}

當滑鼠滑過某個菜單項時,我們希望它變得清晰,而其他項更模糊。在這裡不能使用兄弟選擇器來擷取“其它”所有的菜單項,隻能擷取目前滑鼠滑過菜單項後面的菜單項。是以在這裡要使用一點小技巧,因為所有的菜單項都被設定為塊級元素,是以可以簡單的在滑鼠Hover的時候将整個菜單都變得模糊,然後将目前項變清新即可。

.bmenu:hover li a{

text-shadow: 0px 0px 5px #0d1a3a;

}

.bmenu li a:hover{

color: #fff;

text-shadow: 0px 0px 1px #fff;

padding-left: 10px;

}

EXAMPLE 2

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

在第二個demo中,滑鼠hover時菜單項有些傾斜效果。我們将使用 2D transforms 來完成傾斜效果。傾斜的角度将被設定為x軸方向的-12度。超連結的背景色使用rgba設定為半透明。還為文字添加一個稍微透明的文字陰影。

.bmenu li a{

display: block;

text-transform: uppercase;

text-shadow: 1px 1px 2px rgba(89,22,20,0.3);

color: #581514;

padding: 5px 20px;

margin: 2px;

background: rgba(255,255,255,0.2);

letter-spacing: 1px;

-webkit-transform: skew(-12deg);

-moz-transform: skew(-12deg);

-o-transform: skew(-12deg);

-ms-transform: skew(-12deg);

transform: skew(-12deg);

-webkit-transition: all 0.4s ease-in-out;

-moz-transition: all 0.4s ease-in-out;

-o-transition: all 0.4s ease-in-out;

-ms-transition: all 0.4s ease-in-out;

transition: all 0.4s ease-in-out;

}

滑鼠滑過菜單項時,設定傾斜角度為0,并通過設定半透明背景使菜單變得模糊,目前hover的菜單項沒有背景:

.bmenu:hover li a{

color: transparent;

text-shadow: 0px 0px 10px #fff;

background: rgba(88,22,22,0.2);

-webkit-transform: skew(0deg);

-moz-transform: skew(0deg);

-o-transform: skew(0deg);

-ms-transform: skew(0deg);

transform: skew(0deg);

}

.bmenu li a:hover{

background: transparent;

text-shadow: 1px 1px 10px rgba(89,22,20,0.6);

color: #581514;

}

EXAMPLE 3

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

第三個demo中文字大小做了些變化。開始時是菜單文字縮小、變模糊。我們将使用一個相當緩慢的線性轉換:

.bmenu li a{

white-space: nowrap;

color: transparent;

display: block;

text-transform: uppercase;

text-align: center;

text-shadow: 0px 0px 6px #fff;

letter-spacing: 1px;

-moz-transform: scale(0.5);

-ms-transform: scale(0.5);

-o-transform: scale(0.5);

-webkit-transform: scale(0.5);

transform: scale(0.5);

-webkit-transition: all 0.6s linear;

-moz-transition: all 0.6s linear;

-o-transition: all 0.6s linear;

-ms-transition: all 0.6s linear;

transition: all 0.6s linear;

}

滑鼠hover時其它所有項更模糊,目前項變清晰并放大:

.bmenu:hover li a{

text-shadow: 0px 0px 15px #fff;

}

.bmenu li a:hover{

text-shadow: 0px 0px 1px #fff;

-moz-transform: scale(1);

-ms-transform: scale(1);

-o-transform: scale(1);

-webkit-transform: scale(1);

transform: scale(1);

}

EXAMPLE 4

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

在這個demo中給超連結元素半透明的黑色背景和橙色的文字顔色。這個demo中将使用到 timing transition。

.bmenu li a{

display: block;

text-transform: uppercase;

text-shadow: 0px 0px 2px #eeb213;

color: #eeb213;

padding: 5px 20px;

margin: 2px;

background: rgba(0,0,0,0.7);

letter-spacing: 1px;

-webkit-transition: all 0.2s linear;

-moz-transition: all 0.2s linear;

-o-transition: all 0.2s linear;

-ms-transition: all 0.2s linear;

transition: all 0.2s linear;

}

當滑鼠hover的時候,菜單項模糊,它們的背景色更加透明。目前hover項将不透明:

我們通過指定一些時間延時來制作縮略圖依次出現的效果:

.bmenu:hover li a{

text-shadow: 0px 0px 10px #eeb213;

color: transparent;

background: rgba(0,0,0,0.2);

}

.bmenu li a:hover{

background: rgba(0,0,0,1.0);

text-shadow: 0px 0px 1px #eeb213;

}

EXAMPLE 5

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

第5個demo使用白色的文字陰影和文本顔色,我們隻輕微的模糊菜單項元素:

.bmenu li a{

color: transparent;

display: block;

text-transform: uppercase;

text-shadow: 0px 0px 4px #fff;

letter-spacing: 1px;

-webkit-transition: all 0.2s ease-in-out;

-moz-transition: all 0.2s ease-in-out;

-o-transition: all 0.2s ease-in-out;

-ms-transition: all 0.2s ease-in-out;

transition: all 0.2s ease-in-out;

}

滑鼠滑過時将使菜單項模糊一些并稍稍移動一點距離:

.bmenu:hover li a{

text-shadow: 0px 0px 6px #fff;

}

.bmenu li a:hover{

color: #fff;

text-shadow: 0px 0px 1px #fff;

padding-left: 10px;

}

EXAMPLE 6

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

第6個demo設定背景色為半透明白色:

.bmenu li a{

white-space: nowrap;

display: block;

text-transform: uppercase;

text-shadow: 1px 1px 2px rgba(71,80,23,0.3);

color: #fff;

padding: 5px 20px;

margin: 2px;

background: rgba(255,255,255,0.2);

letter-spacing: 1px;

-webkit-transition: all 0.4s ease-in-out;

-moz-transition: all 0.4s ease-in-out;

-o-transition: all 0.4s ease-in-out;

-ms-transition: all 0.4s ease-in-out;

transition: all 0.4s ease-in-out;

}

使用first-child和last-child選擇器為第一個和最後一個元素添加圓角:

.bmenu li:first-child a{

-webkit-border-radius: 15px 15px 0px 0px;

-moz-border-radius: 15px 15px 0px 0px;

border-radius: 15px 15px 0px 0px;

}

.bmenu li:last-child a{

-webkit-border-radius: 0px 0px 15px 15px;

-moz-border-radius: 0px 0px 15px 15px;

border-radius: 0px 0px 15px 15px;

}

滑鼠hover時其它元素模糊,目前元素變清晰,并且背景色變透明:

.bmenu:hover li a{

text-shadow: 0px 0px 10px #fff;

color: transparent;

}

.bmenu li a:hover{

background: transparent;

text-shadow: 1px 1px 10px rgba(71,80,23,0.6);

color: #c4d85a;

}

EXAMPLE 7

CSS3導航菜單背景模糊特效代碼解析/源碼下載下傳

最後一個demo通過設定 border radius 為寬高的一半将菜單變為圓形。

.bmenu{

padding: 50px 0px;

margin: 0 auto;

position: relative;

background: rgba(0,0,0,0.7);

width: 500px;

height: 400px;

-webkit-border-radius: 250px;

-moz-border-radius: 250px;

border-radius: 250px;

-webkit-transition: background-color 0.5s ease-in-out;

-moz-transition: background-color 0.5s ease-in-out;

-o-transition: background-color 0.5s ease-in-out;

-ms-transition: background-color 0.5s ease-in-out;

transition: background-color 0.5s ease-in-out;

}

這裡添加transitions是為了在滑鼠滑過時背景有動畫效果,通過rgba将背景變得更加透明:

.bmenu:hover{

background: rgba(0,0,0,0.2);

}

調整一下菜單項文字大小和行高:

.bmenu li{

font-size: 40px;

display: block;

line-height: 66px;

}

菜單項元素将被縮小和模糊:

.bmenu li a{

white-space: nowrap;

color: transparent;

display: block;

text-align: center;

text-transform: uppercase;

text-shadow: 0px 0px 3px #fff;

letter-spacing: 1px;

-moz-transform: scale(0.8);

-ms-transform: scale(0.8);

-o-transform: scale(0.8);

-webkit-transform: scale(0.8);

transform: scale(0.8);

-webkit-transition: all 0.4s linear;

-moz-transition: all 0.4s linear;

-o-transition: all 0.4s linear;

-ms-transition: all 0.4s linear;

transition: all 0.4s linear;

}

滑鼠滑過時将使元素更加模糊,給目前hover元素一個好看的背景色,并使它的文字大小恢複到原來的尺寸:

.bmenu:hover li a{

text-shadow: 0px 0px 10px #fff;

}

.bmenu li a:hover{

text-shadow: none;

color: #fff;

background: rgba(129,6,29,0.8);

-moz-transform: scale(1);

-ms-transform: scale(1);

-o-transform: scale(1);

-webkit-transform: scale(1);

transform: scale(1);

}

源碼示範/下載下傳

↓↓↓↓↓↓