当屏幕足够小时(如手机移动设备),会在屏幕右下角展示一个图标,触控图标,则会展开导航菜单,点击菜单页面会滚动到对应的节点,效果非常酷。

HTML

我们的导航条是一个无序列表ul,包含在nav.cd-vertical-nav内,通过连接a#section1关联到对应的节点。元素button.cd-nav-trigger是用来作为小屏幕设备上的用来触发菜单的按钮。section.cd-section就是用来对应导航节点的内容。

  • Intro
  • Events

Open navigation

垂直固定导航

scroll down

CSS

HTML结构部署好后,我们要为页面添加必要的CSS样式。在非常小的屏幕下(视图宽度小于800px),我们将.cd-nav-trigger和的位置固定position: fixed在页面右下角。当点击或者触摸.cd-nav-trigger时,我们使用CSS3来做一个平滑的过渡动画使之有一个展开导航菜单的动画。

.cd-nav-trigger {

display: block;

position: fixed;

z-index: 2;

bottom: 30px;

right: 5%;

}

.cd-vertical-nav {

position: fixed;

z-index: 1;

right: 5%;

bottom: 30px;

transform: scale(0);

transform-origin: right bottom;

transition: transform 0.2s;

}

.cd-vertical-nav.open {

transform: scale(1);

}

那么在大的屏幕设备上,我们首先是要 Modernizr 来检测当前使用的设备是否支持触屏,在非触控屏上会有鼠标滑上的效果。我们将右侧的垂直导航条设置为固定的高度和宽度,并将其固定在页面右侧。默认右侧导航之显示几个圆点,当鼠标滑上圆点时,导航条会打开,可以选择导航菜单。

@media only screen and (min-width: 800px) {

.cd-vertical-nav {

right: 0;

top: 0;

height: 100vh;

width: 90px;

}

.cd-vertical-nav::before {

/* this is the navigation background */

content: '';

position: absolute;

top: 0;

left: 0;

width: 100%;

height: 100%;

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

transform: translateX(100%);

transition: transform 0.4s;

}

.no-touch .cd-vertical-nav:hover::before,

.touch .cd-vertical-nav::before {

transform: translateX(0);

}

.cd-vertical-nav .label {

display: block;

transform: translateX(100%);

transition: transform 0.4s;

}

.no-touch .cd-vertical-nav:hover .label,

.touch .cd-vertical-nav .label {

transform: translateX(0);

}

}

为了创建圆点和图标,可以使用::after和::before来为a元素添加伪类。

@media only screen and (min-width: 800px) {

.cd-vertical-nav a {

position: relative;

padding: 3em 0 0;

margin: 1.4em auto;

}

.cd-vertical-nav a::before,

.cd-vertical-nav a::after {

/* used to create the filled circle and the background icon */

content: '';

position: absolute;

left: 50%;

transition: transform 0.4s 0s;

}

.cd-vertical-nav a::before {

/* filled circle */

top: 0;

height: 32px;

width: 32px;

border-radius: 50%;

background: #eaf2e3;

transform: translateX(-50%) scale(0.25);

}

.cd-vertical-nav a::after {

/* icon */

top: 8px;

height: 16px;

width: 16px;

background: url(../img/cd-nav-icons.svg) no-repeat;

transform: translateX(-50%) scale(0);

}

.no-touch .cd-vertical-nav:hover a::before,

.no-touch .cd-vertical-nav:hover a::after,

.touch .cd-vertical-nav li:nth-of-type(n) a::before,

.touch .cd-vertical-nav li:nth-of-type(n) a::after {

transform: translateX(-50%) scale(1);

}

}

当然到这里效果已经实现了,但是要实现点击导航菜单时页面做平滑滚动效果则需要借助jQuery来实现滚动动画。本例在下载源码包里已经打包了包含的全部jQuery代码,请大家下载后查看,本文不再描述。

html纵向固定导航菜单代码,CSS3单页面垂直固定导航相关推荐

  1. < elementUi 中 封装 NavMenu 导航菜单,实现单页面侧边导航栏 >

    文章目录

  2. JS超级酷的导航菜单代码

    代码简介: JS超级酷的导航菜单代码,类似WINDOWS风格的导航,又又立体效果,很不错的,赶快运行一下,一睹为快吧. 代码内容: <HTML> <HEAD> <TITL ...

  3. html纵向固定导航菜单代码,jQuery和css3响应式垂直固定导航菜单插件

    这是一款非常实用的jQuery和css3响应式垂直固定导航菜单插件.当你的页面上有很多的内容,用户需要花费大量的时间才能找到他们想要的内容.这个垂直固定导航菜单插件能够为页面提供一个内容预览,使用户能 ...

  4. 基于jQuery垂直多级导航菜单代码

    基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载.效果图如下: 在线预览    源码下载 实现的代码. html代码: <ul class="ce& ...

  5. 弧形背景html,JS实现带圆弧背景渐变效果的导航菜单代码

    本文实例讲述了JS实现带圆弧背景渐变效果的导航菜单代码.分享给大家供大家参考.具体如下: 这是一款效果个性的JS+CSS导航菜单,鼠标经过时出现有趣弧形背景,实际上,这里用CSS调用了背景,用Java ...

  6. 蓝色箭头间隔css导航菜单代码

    蓝色箭头间隔css导航菜单代码 演示图片: 详细代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  7. CSS写的青色漂亮导航菜单代码

    代码简介: 简洁型的CSS导航菜单,没有用到图片,但看着很舒服,老外网站的东西,CSS代码很简洁,复制代码即可使用. 代码内容: <!DOCTYPE HTML PUBLIC "-//W ...

  8. Java制作二级导航菜单_纯CSS实现超简单的二级下拉导航菜单代码

    本文实例讲述了纯CSS实现超简单的二级下拉导航菜单代码.分享给大家供大家参考.具体如下: 这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且 ...

  9. 很漂亮的蓝色经典CSS导航菜单代码

    代码简介:很不错的一款蓝色风格经典的CSS导航菜单,只不过用到了几张背景图片,好像这些图片可以合并起来用,有兴趣用的朋友可以适当优化一下,从外观上来看,这款菜单还是非常好看的. 代码内容: <! ...

最新文章

  1. 迭代3:UC1,UC2的2.1 业务建模 2.2 UC2用例模型 2.3 UC2补充性规格说明
  2. 人工智能学什么?专家表示基础科学教育需发力
  3. java里的关键字有什么用_java语言关键字有哪些?都有什么用处?
  4. [JavaWeb-MySQL]事务的四大特征和隔离级别
  5. angularjs学习笔记—工具方法
  6. 【转】Azure基本核心服务计费
  7. 【J2SE】java实现简单照片查看器
  8. 深入浅出hive-hive简介
  9. Python删除文件第一行
  10. 阿里云安装kubernetes-UI报错endpoints \kubernetes-dashboard\ not found解决方法
  11. 了解PS、学习使用html语义化标签和CSS术语
  12. 倾斜摄影——3维建模软件PhotoScan教程(附安装包+教学视频)
  13. 内网代理——常用工具
  14. 彻底清除mplay.com与mplay.exe病毒
  15. 心理学与生活 -人格与动机
  16. Java使用LocalDate获取某个月的第一天和最后一天日期
  17. lzg_ad:XPE下中文字体相关问题
  18. C++的O2、O3到底是个什么鬼
  19. 挂牌!迎来【济南网络空间安全山东省实验室】等三所实验室!
  20. android linux 休眠 深度睡眠 查看 方法 调试

热门文章

  1. memcache 缓存命中率   状态查询
  2. java代码=--数组复制
  3. hive添加字段报conflicting lock
  4. Android开发人员必备的10 个开发工具
  5. VForum07之四:布道中国 解读本地化策略
  6. pcb设计等长线误差_“背锅”盲区,光时域反射仪延长线实际使用测评
  7. java程序设计经典课堂讲课_Java程序设计与开发经典课堂
  8. html怎么样做出两列布局页面,HTML+CSS实现两栏和三栏布局
  9. 接口设计的几个注意事项
  10. service get list一般规范