?
1
2
3
4
5
6
7
8
9
10
11
12
13
<div id="top-bar" class="top-bar">
<div class="bar">
<button id="navbox-trigger" class="navbox-trigger"><i class="fa fa-lg fa-th"></i></button>
</div>
<div class="navbox">
<div class="navbox-tiles">
<a href="#" class="tile">
<div class="icon"><i class="fa fa-home"></i></div><span class="title">Home</span>
</a>
......
</div>
</div>
</div>
CSS样式
在CSS样式中,顶部导航条.top-bar设置为固定高度50像素和相对定位,并给出一个较高的z-index值。
?
1
2
3
4
5
.top-bar {
height: 50px
position: relative
z-index: 1000
}
下拉菜单.navbox开始的时候是隐藏的,它采用绝对定位,通过translateY方法将它移动到导航条上方200像素的地方。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
.top-bar .navbox {
visibility: hidden
opacity: 0
position: absolute
top: 100%
left: 0
z-index: 1
-webkit-transform: translateY(-200px)
-ms-transform: translateY(-200px)
transform: translateY(-200px)
-webkit-transition: all .2s
transition: all .2s
}
接着在下拉菜单被激活的时候,它的透明度被设置回1,变为可见状态,并通过translateY方法将它移动回原来的位置。
?
1
2
3
4
5
6
7
8
9
.top-bar.navbox-open .navbox {
visibility: visible
opacity: 1
-webkit-transform: translateY(0)
-ms-transform: translateY(0)
transform: translateY(0)
-webkit-transition: opacity .3s, -webkit-transform .3s
transition: opacity .3s, transform .3s
}
JavaScript
该特效中使用jQUery切换相应的class类和用于打开菜单按钮。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(function () {
$(document).ready(function () {
$('#navbox-trigger').click(function () {
return $('#top-bar').toggleClass('navbox-open')
})
return $(document).on('click', function (e) {
var $target
$target = $(e.target)
if (!$target.closest('.navbox').length &&!$target.closest('#navbox-trigger').length) {
return $('#top-bar').removeClass('navbox-open')
}
})
})
}.call(this))
这个css是无法实现局部模糊的,所以做不到,但是有一点可以做到就透明.xx{background:rgba(255,255,255,0.4)}这样就是一个背景色为白色 透明度为50%的效果了但是IE9一下不支持这种写法,模糊也是:
.blur {
filter: url(blur.svg#blur)/* FireFox, Chrome, Opera */
-webkit-filter: blur(10px)/* Chrome, Opera */
-moz-filter: blur(10px)
-ms-filter: blur(10px)
filter: blur(10px)
filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=10, MakeShadow=false)/* IE6~IE9 */
}
那个效果一个是窗口区域背景模糊,一个是窗口区域窗口半透明。 背景模糊可以做,但是背景局部模糊办不到