?
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))
<style>
body{
width: 980px
}
header{
background-color: rgb(0,0,214)
height: 100px
}
.content{
width: 100%
margin: 0px
}
.left{
float: left
width: 50%
background-color: rgb(24,248,0)
margin:0
height: 300px
}
.right{
width: 50%
/*float: left*/
margin-left: 50%
/*background-color: rgb(147,41,28)*/
height: 300px
}
.divtop{
width: 100%
}
.div1{
width: 50%
float: left
height: 150px
background-color: rgb(246,244,0)
}
.div2{
background-color: rgb(75,247,0)
height: 150px
}
.divbottom{
width: 100%
}
.div3{
float: left
height: 150px
width: 50%
background-color: rgb(213,9,152)
}
.div4{
background-color: rgb(244,188,91)
height: 150px
}
html 代码:
<body><header>
</header>
<div class="content">
<div class="left">
left
</div>
<div class="right">
<div class="divtop">
<div class="div1"></div>
<div class="div2"></div>
</div>
<div class="divbottom">
<div class="div3"></div>
<div class="div4"></div>
</div>
</div>
</div>
</body>
效果和你的图一致!
也许是你css引用的路径不对,或者你把css样式放到html文件中去,看看样式真否能出来。如果出不来那就是你css有错误了,浏览器无法继续执行下去。<style>你的css内容</style>把这个放在<head></head>之间