字号: - o +

漂亮的左侧滑出导航

2013-03-01 前端开发 15人评论 38,552次浏览   

子曰:能为别人设想的人,永远不寂寞 o(∩_∩)o
WopusIDC优惠码:W3Cshare, 点击获取, 或者提交订单时手动输入

今天,我想向您展示了如何创建一个惊人的滑出式菜单或导航为您的网站。导航将几乎隐藏 – 当用户将鼠标悬停在该区域在他们旁边的项目只滑出。这给出了一个漂亮的效果,使用这种技术可以节省您的网站上的一些空间。该项目将是半透明的,这意味着根据他们的内容不会被完全隐藏。

点此查看效果

1、HTML结构

我们唯一需要的导航是一个简单的无序列表的链接的列表元素:

<ul id="navigation">
 <li class="home"><a title="Home"></a></li>
 <li class="about"><a title="About"></a></li>
 <li class="search"><a title="Search"></a></li>
 <li class="photos"><a title="Photos"></a></li>
 <li class="rssfeed"><a title="Rss Feed"></a></li>
 <li class="podcasts"><a title="Podcasts"></a></li>
 <li class="contact"><a title="Contact"></a></li>
</ul>

该列表的ID,因为我们要在JavaScript参考。使用jQuery,我们将链接项目滑出时,我们将鼠标悬停在列表中的Li元素。

2、CSS样式

首先,我们定义的CSS属性的列表:

ul#navigation {
    position: fixed;
    margin: 0px;
    padding: 0px;
    top: 10px;
    left: 0px;
    list-style: none;
    z-index:9999;
}

导航应该永远是可访问的用户,即使他向下滚动页面。因此,位置是固定的。显式设置margin和padding为0,因为无序列表的默认值。导航也应该是在上面的所有其他页面上的元素。这就是为什么我们设定的z-index非常高。

现在,让我们来看看在列表中的元素属性:

ul#navigation li {
    width: 100px;
}

我们给链接列表中的元素定义CSS属性:

ul#navigation li a {
    display: block;
    margin-left: -85px;
    width: 100px;
    height: 70px;
    background-color:#CFCFCF;
    background-repeat:no-repeat;
    background-position:center center;
    border:1px solid #AFAFAF;
}

因为我们想隐藏的图标,并只显示当我们将鼠标悬停在列表项的设置为负值的margin-left。基本上,我们正在推动的链接元素的左边,在页面的可视面积之外:

slideoututorial11

在JavaScript中的一部分,我们将定义一个函数,使得元素滑出。但首先让我们添加一些圆角边框他们(当然他们不兼容IE):

ul#navigation li a {
display: block;
margin-left: -85px;
width: 100px;
height: 70px;
background-color:#CFCFCF;
background-repeat:no-repeat;
background-position:center center;
border:1px solid #AFAFAF;
-moz-border-radius:0px 10px 10px 0px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-top-right-radius: 10px;
-khtml-border-bottom-right-radius: 10px;
-khtml-border-top-right-radius: 10px;
}

为了让他们很整洁,我们添加一些不透明,所以,下面的内容是可见的:

ul#navigation li a {
display: block;
margin-left: -85px;
width: 100px;
height: 70px;
background-color:#CFCFCF;
background-repeat:no-repeat;
background-position:center center;
border:1px solid #AFAFAF;
-moz-border-radius:0px 10px 10px 0px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-top-right-radius: 10px;
-khtml-border-bottom-right-radius: 10px;
-khtml-border-top-right-radius: 10px;
opacity: 0.6;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=60);
}

现在,我们将定义背景图像的特定列表项的链接:

ul#navigation .home a{
background-image: url(../images/home.png);
}
ul#navigation .about a {
background-image: url(../images/id_card.png);
}
ul#navigation .search a {
background-image: url(../images/search.png);
}
ul#navigation .podcasts a {
background-image: url(../images/ipod.png);
}
ul#navigation .rssfeed a {
background-image: url(../images/rss.png);
}
ul#navigation .photos a {
background-image: url(../images/camera.png);
}
ul#navigation .contact a {
background-image: url(../images/mail.png);
}

这是CSS的一部分。现在,让我们来看看几行JavaScript,将给予一定的生活导航。

在JavaScript

使用jQuery,我们将图标显示,当我们将鼠标悬停在一个列表项。请记住,列表项本身是100像素宽,只有link元素以外的页的左侧推压,因此它是不可见的。

我们定义下面的函数,得到的将鼠标悬停在一里,每当我们执行:

$(function() {
$('#navigation > li').hover(
function () {
$('a',$(this)).stop().animate({'marginLeft':'-2px'},200);
},
function () {
$('a',$(this)).stop().animate({'marginLeft':'-85px'},200);
}
);
});

为了让导航是可见的,我们必须改变链接元素的左边距,代码修改为:

ul#navigation li a {
display: block;
margin-left: -2px;
width: 100px;
height: 70px;
background-color:#CFCFCF;
background-repeat:no-repeat;
background-position:center center;
border:1px solid #AFAFAF;
-moz-border-radius:0px 10px 10px 0px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-top-right-radius: 10px;
-khtml-border-bottom-right-radius: 10px;
-khtml-border-top-right-radius: 10px;
opacity: 0.6;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=60);
}

我们可以美化一下样式,比如加个阴影,代码修改如下:

ul#navigation li a {
display: block;
margin-left: -2px;
width: 100px;
height: 70px;
background-color:#CFCFCF;
background-repeat:no-repeat;
background-position:center center;
border:1px solid #AFAFAF;
-moz-border-radius:0px 10px 10px 0px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-top-right-radius: 10px;
-khtml-border-bottom-right-radius: 10px;
-khtml-border-top-right-radius: 10px;
-moz-box-shadow: 0px 4px 3px #000;
-webkit-box-shadow: 0px 4px 3px #000;
}

好了,到这里一个漂亮的左侧滑动导航就浮现在我们眼前了。

点此查看效果

本文作者:两千年的孤寂

2014年的目标:1、入手kp2,多看几本书。2、至少旅游一次。3、带公司走上正轨。少说话,多做事!我不是最好的,但我要做最努力的...... 本站主题交流群:465295619,不闲聊!以后你会知道它的重要性!你懂的~

继续查看有关 的文章

本文密切相关的文章

网友评论10条 ,博主回复5

  1. 赞。。

    Feeng03-11 13:43 回复
  2. 不错的导航,做一个飞行线条指向这个导航,就挺完美而来。

    别先生EHS 03-03 20:09 回复
  3. 看起来蛮不错的

    kn007 03-03 19:30 回复
  4. 不错的效果。。。
    我用一下看看

    elyar03-01 15:03 回复
  5. 这样做搜索引擎不会抓取不到吧?不懂得。汗。

    • 这只是导航图片,你可以加上文字的,搜索引擎是抓取文字代码的

  6. 我也没有太明白,不过还是要谢谢博主分享内容。非常希望博主有空来我博客参观指导。谢谢

  7. 好复杂啊 呵呵

    sui03-01 13:03 回复
  8. 让我想起乌班图的左侧导航

    游手好弦03-01 11:33 回复
  9. 嘿嘿 没看太懂。。。。

  10. 很不错的效果 可是要真是用作导航 有些信息 太隐藏了吧。。要每个都点开来看

    所谓刚子03-01 10:38 回复

发表我的评论

*

*

取消