2014年响应式设计成为设计主流。今天要给大家带来一款由css3和jquery实现的响应式设计导航。当显示器为pc时,导航为横条。当客户端为移动端时,呈现坚形导航。我们一起看下效果图:

在线预览   源码下载

实现的代码。

html代码:

    <header>
<nav id='cssmenu'>
<div class="logo">
<a href="index.html">Responsive </a>
</div>
<div id="head-mobile">
</div>
<div class="button">
</div>
<ul>
<li class='active'><a href='#'>HOME</a></li>
<li><a href='#'>ABOUT</a></li>
<li><a href='#'>PRODUCTS</a>
<ul>
<li><a href='#'>Product 1</a>
<ul>
<li><a href='#'>Sub Product</a></li>
<li><a href='#'>Sub Product</a></li>
</ul>
</li>
<li><a href='#'>Product 2</a>
<ul>
<li><a href='#'>Sub Product</a></li>
<li><a href='#'>Sub Product</a></li>
</ul>
</li>
</ul>
</li>
<li><a href='#'>BIO</a></li>
<li><a href='#'>VIDEO</a></li>
<li><a href='#'>GALLERY</a></li>
<li><a href='#'>CONTACT</a></li>
</ul>
</nav>
</header>
<section style='padding-top: 20px; font: bold 44px arial; color: #68D800; width: 970px;
margin: auto;'>
Responsive CSS3 Menu
<br />Dropdown + Submenus
<br />
Width Toggle Animation
<script src="/scripts/2bc/_gg_970_90.js" type="text/javascript"></script>
</section>

css3代码:

   *
{
margin:;
padding:;
text-decoration: none;
}
body
{
background: #555;
}
header
{
position: relative;
width: 100%;
background: #333;
}
.logo
{
position: relative;
z-index:;
padding: 10px;
font: 18px verdana;
color: #6DDB07;
float: left;
width: 15%;
}
.logo a
{
color: #6DDB07;
}
nav
{
position: relative;
width: 980px;
margin: 0 auto;
}
#cssmenu, #cssmenu ul, #cssmenu ul li, #cssmenu ul li a, #cssmenu #head-mobile
{
border:;
list-style: none;
line-height:;
display: block;
position: relative;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#cssmenu:after, #cssmenu > ul:after
{
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height:;
height:;
}
#cssmenu #head-mobile
{
display: none;
}
#cssmenu
{
font-family: sans-serif;
background: #333;
}
#cssmenu > ul > li
{
float: left;
}
#cssmenu > ul > li > a
{
padding: 17px;
font-size: 12px;
letter-spacing: 1px;
text-decoration: none;
color: #ddd;
font-weight:;
}
#cssmenu > ul > li:hover > a, #cssmenu ul li.active a
{
color: #fff;
}
#cssmenu ul li.active:hover
{
background: #448D00;
}
#cssmenu > ul > li:hover, #cssmenu ul li.active
{
background: #448D00;
-webkit-transition: background .3s ease;
-ms-transition: background .3s ease;
transition: background .3s ease;
}
#cssmenu > ul > li.has-sub > a
{
padding-right: 30px;
}
#cssmenu > ul > li.has-sub > a:after
{
position: absolute;
top: 22px;
right: 11px;
width: 8px;
height: 2px;
display: block;
background: #ddd;
content: '';
}
#cssmenu > ul > li.has-sub > a:before
{
position: absolute;
top: 19px;
right: 14px;
display: block;
width: 2px;
height: 8px;
background: #ddd;
content: '';
-webkit-transition: all .25s ease;
-ms-transition: all .25s ease;
transition: all .25s ease;
}
#cssmenu > ul > li.has-sub:hover > a:before
{
top: 23px;
height:;
}
#cssmenu ul ul
{
position: absolute;
left: -9999px;
}
#cssmenu ul ul li
{
height:;
-webkit-transition: all .25s ease;
-ms-transition: all .25s ease;
transition: all .25s ease;
}
#cssmenu ul ul li:hover
{
}
#cssmenu li:hover > ul
{
left: auto;
}
#cssmenu li:hover > ul > li
{
height: 35px;
}
#cssmenu ul ul ul
{
margin-left: 100%;
top:;
}
#cssmenu ul ul li a
{
border-bottom: 1px solid rgba(150,150,150,0.15);
padding: 11px 15px;
width: 170px;
font-size: 12px;
text-decoration: none;
color: #ddd;
font-weight:;
background: #333;
}
#cssmenu ul ul li:last-child > a, #cssmenu ul ul li.last-item > a
{
border-bottom:;
}
#cssmenu ul ul li:hover > a, #cssmenu ul ul li a:hover
{
color: #fff;
}
#cssmenu ul ul li.has-sub > a:after
{
position: absolute;
top: 16px;
right: 11px;
width: 8px;
height: 2px;
display: block;
background: #ddd;
content: '';
}
#cssmenu ul ul li.has-sub > a:before
{
position: absolute;
top: 13px;
right: 14px;
display: block;
width: 2px;
height: 8px;
background: #ddd;
content: '';
-webkit-transition: all .25s ease;
-ms-transition: all .25s ease;
transition: all .25s ease;
}
#cssmenu ul ul > li.has-sub:hover > a:before
{
top: 17px;
height:;
}
#cssmenu ul ul li.has-sub > a:hover, #cssmenu ul li.has-sub ul li.has-sub ul li > a:hover
{
background: #363636;
} @media screen and (max-width: 468px)
{
.logo
{
position: absolute;
top:;
left:;
width: 100%;
height: 46px;
text-align: center;
padding: 10px 0 0 0;
float: none;
}
.logo2
{
display: none;
}
nav
{
width: 100%;
}
#cssmenu
{
width: 100%;
}
#cssmenu ul
{
width: 100%;
display: none;
}
#cssmenu ul li
{
width: 100%;
border-top: 1px solid #444;
}
#cssmenu ul li:hover
{
background: #363636;
-webkit-transition: none;
-ms-transition: none;
transition: none;
}
#cssmenu ul ul li, #cssmenu li:hover > ul > li
{
height: auto;
}
#cssmenu ul li a, #cssmenu ul ul li a
{
width: 100%;
border-bottom:;
}
#cssmenu > ul > li
{
float: none;
}
#cssmenu ul ul li a
{
padding-left: 25px;
}
#cssmenu ul ul li a
{
background: #333 !important;
}
#cssmenu ul ul li a:hover
{
background: #363636 !important;
}
#cssmenu ul ul ul li a
{
padding-left: 35px;
}
#cssmenu ul ul li a
{
color: #ddd;
background: none;
}
#cssmenu ul ul li:hover > a, #cssmenu ul ul li.active > a
{
color: #fff;
}
#cssmenu ul ul, #cssmenu ul ul ul
{
position: relative;
left:;
width: 100%;
margin:;
text-align: left;
}
#cssmenu > ul > li.has-sub > a:after, #cssmenu > ul > li.has-sub > a:before, #cssmenu ul ul > li.has-sub > a:after, #cssmenu ul ul > li.has-sub > a:before
{
display: none;
}
#cssmenu #head-mobile
{
display: block;
padding: 23px;
color: #ddd;
font-size: 12px;
font-weight:;
}
.button
{
width: 55px;
height: 46px;
position: absolute;
right:;
top:;
cursor: pointer;
z-index:;
}
.button:after
{
position: absolute;
top: 22px;
right: 20px;
display: block;
height: 4px;
width: 20px;
border-top: 2px solid #dddddd;
border-bottom: 2px solid #dddddd;
content: '';
}
.button:before
{
-webkit-transition: all .3s ease;
-ms-transition: all .3s ease;
transition: all .3s ease;
position: absolute;
top: 16px;
right: 20px;
display: block;
height: 2px;
width: 20px;
background: #ddd;
content: '';
}
.button.menu-opened:after
{
-webkit-transition: all .3s ease;
-ms-transition: all .3s ease;
transition: all .3s ease;
top: 23px;
border:;
height: 2px;
width: 19px;
background: #fff;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.button.menu-opened:before
{
top: 23px;
background: #fff;
width: 19px;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
}
#cssmenu .submenu-button
{
position: absolute;
z-index:;
right:;
top:;
display: block;
border-left: 1px solid #444;
height: 46px;
width: 46px;
cursor: pointer;
}
#cssmenu .submenu-button.submenu-opened
{
background: #262626;
}
#cssmenu ul ul .submenu-button
{
height: 34px;
width: 34px;
}
#cssmenu .submenu-button:after
{
position: absolute;
top: 22px;
right: 19px;
width: 8px;
height: 2px;
display: block;
background: #ddd;
content: '';
}
#cssmenu ul ul .submenu-button:after
{
top: 15px;
right: 13px;
}
#cssmenu .submenu-button.submenu-opened:after
{
background: #fff;
}
#cssmenu .submenu-button:before
{
position: absolute;
top: 19px;
right: 22px;
display: block;
width: 2px;
height: 8px;
background: #ddd;
content: '';
}
#cssmenu ul ul .submenu-button:before
{
top: 12px;
right: 16px;
}
#cssmenu .submenu-button.submenu-opened:before
{
display: none;
}
}

js代码:

  (function ($) {

            $.fn.menumaker = function (options) {

                var cssmenu = $(this), settings = $.extend({
format: "dropdown",
sticky: false
}, options); return this.each(function () { $(this).find(".button").on('click', function () {
$(this).toggleClass('menu-opened');
var mainmenu = $(this).next('ul');
if (mainmenu.hasClass('open')) {
mainmenu.slideToggle().removeClass('open');
}
else {
mainmenu.slideToggle().addClass('open');
if (settings.format === "dropdown") {
mainmenu.find('ul').show();
}
}
}); cssmenu.find('li ul').parent().addClass('has-sub'); multiTg = function () {
cssmenu.find(".has-sub").prepend('<span class="submenu-button"></span>');
cssmenu.find('.submenu-button').on('click', function () {
$(this).toggleClass('submenu-opened');
if ($(this).siblings('ul').hasClass('open')) {
$(this).siblings('ul').removeClass('open').slideToggle();
}
else {
$(this).siblings('ul').addClass('open').slideToggle();
}
});
}; if (settings.format === 'multitoggle') multiTg();
else cssmenu.addClass('dropdown'); if (settings.sticky === true) cssmenu.css('position', 'fixed'); resizeFix = function () {
if ($(window).width() > 468) {
cssmenu.find('ul').show(); } if ($(window).width() <= 468) {
cssmenu.find('ul').hide().removeClass('open'); }
};
resizeFix();
return $(window).on('resize', resizeFix); });
};
})(jQuery); (function ($) {
$(document).ready(function () {
$("#cssmenu").menumaker({
format: "multitoggle"
}); });
})(jQuery);
//@ sourceURL=pen.js

注:本文爱编程原创文章,转载请注明原文地址:http://www.w2bc.com/Article/7223

一款由css3和jquery实现的响应式设计导航的更多相关文章

  1. html5、css3及响应式设计入门

    一.响应式设计的定义 将三种已有的开发技巧(弹性网格布局.弹性图片.媒体和媒体查询)整合起来,命名为响应式网页设计.真正的响应式设计方法不仅仅只是根据视口大小改变网页布局.相反,它是要从整体上颠覆我们 ...

  2. 一款基于jquery和css3的响应式二级导航菜单

    今天给大家分享一款基于jquery和css3的响应式二级导航菜单,这款导航是传统的基于顶部,鼠标经过的时候显示二级导航,还采用了当前流行的响应式设计.效果图如下: 在线预览   源码下载 实现的代码. ...

  3. 一款由css3和jquery实现的卡面折叠式菜单

    之前已经为大家介绍了好多导航菜单.今天为大家再带来一款由css3和jquery实现的卡片折叠式菜单.当菜单关闭的时候,有三维堆叠的效果.我们一起看下效果图: 在线预览   源码下载 html代码: & ...

  4. 一款基于css3和jquery实现的动画弹出层

    今天给大家分享一款基于css3和jquery实现的动画弹出层.这款弹出层初页面面一个显示弹出层按钮.单击该按钮时,弹出层以非常炫的动画形式出现.弹出层有关闭按钮,单击半闭按钮,弹出层关闭.效果图如下: ...

  5. HTML5实践 -- 使用CSS3 Media Queries实现响应式设计

    CSS3 Media用法介绍:http://www.w3cplus.com/content/css3-media-queries 转载请注明原创地址:http://www.cnblogs.com/so ...

  6. HTML5、CSS3响应式设计——笔记

    1.1.响应式网页设计 响应式网页设计(RWD,Responsive Web Design)这个术语,由伊桑·马科特(EthanMarcotte)提出.他在A List Apart 发表了一篇开创性的 ...

  7. CSS3知识点整理(五)----响应式设计及其他属性

    介绍Media Queries与Responsive设计以及外轮廓属性.resize属性.CSS3生成内容等 学会如何使用CSS3中的Media Queries模块来让一个页面适应不同的终端(或屏幕尺 ...

  8. 纯css3开发的响应式设计动画菜单(支持ie8)

    这是一个响应式设计的菜单.单击列表图标,当你显示屏大小可以完全水平放下所有菜单项时,菜单水平显示(如图1).当你的显示屏不能水平放置所有菜单项时,菜单垂直显示(如图2). 而且显示的时候是以动画的型式 ...

  9. css3媒体查询实现网站响应式布局

    最常见的办法就是基类(最常用的网站布局)+扩展类(几种不同的网站布局类)来实现不同的布局. <!–使用说明:网站基本布局,使用class="layout";使用ipad访问时 ...

随机推荐

  1. Windows下安装OpenSSL及其使用

    方法一: Windows binaries can be found here: http://www.slproweb.com/products/Win32OpenSSL.html You can ...

  2. 腾讯云-搭建 .NET Core 开发环境

    搭建 .NET Core 开发环境 安装 .Net Core 执行代码 任务时间:时间未知 .NET Core 的官方文档很详细,本实验带你建立一个.NET Core 1.1的Web运行环境,更多内容 ...

  3. AWK中的OFS的问题

    echo a b c d |awk '{OFS = ":";print $0}' 我的理解是应该把输出显示为如下的方式 a:b:c:d dan但执行的结果不是这样的 a b c d ...

  4. java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1

    String sql1 = "insert into TEST_RELEVANCEEXPORT" +            " (ID, YYCSDM, YYCSMC, ...

  5. iOS获取设备卸载后不变的UUID

    1.首先导入系统库Security.framework 2.创建文件SFHFKeychainUtils.h如下(复制即可): @interface SFHFKeychainUtils : NSObje ...

  6. 浅谈 .NET 中的对象引用、非托管指针和托管指针

    目录 前言 一.对象引用 二.值传递和引用传递 三.初识托管指针和非托管指针 四.非托管指针 1.非托管指针不能指向对象引用 2.类成员指针 五.托管指针 前言 本文主要是以 C# 为例介绍 .NET ...

  7. Python学习笔记014——迭代工具函数 内置函数zip()

    1 描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操 ...

  8. 转 selenium 自动下载文件

    #coding=utf-8from selenium import webdriver #实例化一个火狐配置文件fp = webdriver.FirefoxProfile() #设置各项参数,参数可以 ...

  9. Python sqrt() 函数

    描述 sqrt() 方法返回数字x的平方根. 语法 以下是 sqrt() 方法的语法: import math math.sqrt( x ) 注意:sqrt()是不能直接访问的,需要导入 math 模 ...

  10. C# winform 请求http ( get , post 两种方式 )

    一:.Net中有两个类 HttpWebRequest 和HttpWebResponse 类来实现Http的请求 实现步骤: 1.通过WebRequest类创建一个HttpWebRequest的对象,该 ...