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

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

HTML结构

导航菜单使用nav作为wrapper,并为每一个导航项创建一个section。另外添加了一个trigger用于在触摸屏设备上导航。

Open navigation

  • Item 1

CSS样式

我们使用Modernizr(.touch和.no-touch)来检测触摸和非触摸设备,并提供两个自定义的导航方法。因此,你在大屏幕上不论如何缩小浏览器,看到的都是小点导航按钮,但是如果触摸屏设备来查看这个demo,你会看到下图所示的样子:

b5f990597dde89240d13bb4bf9bff1a4.gif

在非触摸屏的设备上,我们将trigger隐藏,并给元素设置position: fixed。

默认情况下,我们给导航菜单项设置scale-down的transform效果。在鼠标滑过它们时,在使它们scale-up起来。

.no-touch #cd-vertical-nav {

/*fix the navigation*/

position: fixed;

right: 40px;

top: 50%;

bottom: auto;

transform: translateY(-50%);

}

.no-touch #cd-vertical-nav a span {

float: right;

/*scale down navigation dots and labels*/

transform: scale(0.6);

}

.no-touch #cd-vertical-nav .cd-dot {

transform-origin: 50% 50%;

}

.no-touch #cd-vertical-nav .cd-label {

transform-origin: 100% 50%;

}

.no-touch #vertical-nav a:hover span {

/*scale up navigation dots and labels*/

transform: scale(1);

}

.no-touch #cd-vertical-nav a:hover .cd-label {

/*show labels*/

opacity: 1;

}

在移动触摸设备上,我们为.cd-nav-trigger和设置position: fixed。

当用户点击了.cd-nav-trigger元素,我们给导航菜单添加.open类,用来改变CSS3 scale的值从0变到1,并通过CSS3 transition使动画更加平滑。

下面是一些简化代码:

.touch #cd-vertical-nav {

position: fixed;

z-index: 1;

right: 5%;

bottom: 30px;

width: 90%;

max-width: 400px;

max-height: 90%;

transform: scale(0);

transition-property: transform;

transition-duration: 0.2s;

}

.touch #cd-vertical-nav.open {

transform: scale(1);

}

JAVASCRIPT

当用户向下滚动鼠标,updateNavigation()方法会计算出哪一个是当前浏览的section,并未相应的导航菜单项添加.is-selected类(基于导航菜单项的data-number属性)。

jQuery(document).ready(function($){

var contentSections = $('.cd-section'),

navigationItems = $('#cd-vertical-nav a');

updateNavigation();

$(window).on('scroll', function(){

updateNavigation();

});

//smooth scroll to the section

navigationItems.on('click', function(event){

event.preventDefault();

smoothScroll($(this.hash));

});

//smooth scroll to second section

$('.cd-scroll-down').on('click', function(event){

event.preventDefault();

smoothScroll($(this.hash));

});

//open-close navigation on touch devices

$('.touch .cd-nav-trigger').on('click', function(){

$('.touch #cd-vertical-nav').toggleClass('open');

});

//close navigation on touch devices when selectin an elemnt from the list

$('.touch #cd-vertical-nav a').on('click', function(){

$('.touch #cd-vertical-nav').removeClass('open');

});

function updateNavigation() {

contentSections.each(function(){

$this = $(this);

var activeSection = $('#cd-vertical-nav a[href="#'+$this.attr('id')+'"]').data('number') - 1;

if ( ( $this.offset().top - $(window).height()/2 < $(window).scrollTop() ) && ( $this.offset().top + $this.height() - $(window).height()/2 > $(window).scrollTop() ) ) {

navigationItems.eq(activeSection).addClass('is-selected');

}else {

navigationItems.eq(activeSection).removeClass('is-selected');

}

});

}

function smoothScroll(target) {

$('body,html').animate(

{'scrollTop':target.offset().top},

600

);

}

});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单点登录 cas 设置回调地址_单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?...

实现单点登录说到底就是要解决如何产生和存储那个信任&#xff0c;再就是其他系统如何验证这个信任的有效性&#xff0c;因此要点也就以下两个&#xff1a;1、存储信任 &#xff1b;2、服务器生产~验证信任 &#xff1b; 3、拿到服务器再次验证。单点登录的常见落地实现技术有哪…

python 长度queue_python:常见的数据结构

​ Python中常见的数据结构可以统称为容器。序列&#xff08;如列表和元组&#xff09;、映射&#xff08;如字典&#xff09;以及集合&#xff08;set&#xff09;是三类主要的容器。线性数据结构分类&#xff1a;栈(stack)--先进后出、 队列(queue)-先进先出、双端队列(deque…

纯java pdf转换成html,java pdf转换html代码

java pdf转换html代码[2021-02-03 00:56:42] 简介:php去除nbsp的方法&#xff1a;首先创建一个PHP代码示例文件&#xff1b;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff1a…

tina中信号带宽_如何评测示波器带宽

示波器最重要的单一特性&#xff0c;即带宽在频率域提供范围标示。带宽以Hz衡量&#xff0c;根据频率决定信号范围&#xff0c;以便能精确显示及进行测试。带宽不足&#xff0c;则示波器将不能显示出实际信号的准确表现。例如&#xff0c;信号的幅度也许会不准确、边缘也许会不…

esc指令检查打印状态_【行业知识分享】八千字解读ESC系统

汽车电子稳定控制系统ESC(Electronic StabilityController)是一个主动安全控制系统&#xff0c;通过传感器监控车辆自身行驶状态&#xff0c;在车辆紧急躲避障碍物、转弯等容易出现不稳定状况时&#xff0c;以及在转向过度或转向不足情况下&#xff0c;利用动力系统干预及制动系…

html滚动字幕如何向下移动,按向下键的同时,菜单选项向下移动,浏览器右边的滚动条也跟着跑怎么办。这个bug怎么改...

是事件冒泡的锅吗?若果是&#xff0c;cancelbubble加到哪一行下面&#xff1f;若果不是应该怎么改.下拉菜单body,ul,li{ margin:0; padding:0; font-size:13px;}ul,li{list-style:none;}#divselect{width:186px; margin:80px auto; position:relative; z-index:10000;}#divsel…

c语言中文网 vc++6.0下载量_【新手必看】C语言开发环境,请查收!

C语言开发环境的选择&#xff0c;貌似是告诉我们&#xff0c;工欲善其事&#xff0c;必先利其器。01、Visual StudioVisual Studio&#xff08;简称 VS&#xff09;&#xff0c;它是 Windows 下的标准 IDE&#xff0c;VS系列为IDE&#xff08;集成开发环境&#xff09;&#xf…

hssfworkbook.write 生成文件 数据丢失_电脑文件丢失了,数据恢复我只用这一个软件!...

电脑使用久了&#xff0c;遇到硬盘数据丢失或者误删乃是常见之事。所以这样的事情发生之时&#xff0c;最重要的是找到一个明智的解决方法&#xff0c;切忌浮躁&#xff0c;一个不小心&#xff0c;可能造成更严重的后果。据不完全统计&#xff0c;当电脑文件丢失后&#xff0c;…

html如何让图片跟字体重叠,CSS设置图片与文字的间距

【实例介绍】CSS设置图片与文字的间距希望图片本身与文字有一定的距离只需要给标记添加margin属性即可。margin属性包括margin&#xff0e;top、margin-right&#xff0c;margin-bottom、margin—left、margin。属性margin可以用来同时设置图片的四边外边距&#xff0c;而其他的…

查看so库中是否有某个定义_论Linux ELF中动态库符号重定义利用 属性/Linker 做隐藏的手法...

假如libgetthree.so libgetseven.so , 同时这两个so内部都用了internal_do_calculation()函数&#xff0c;并且各自定义了自己的internal_do_calculation()的实现&#xff0c;你会想当然的认为他们各自不影响&#xff0c;libgetthree和libgetseven会分别用自己的internal_do_ca…

android 手写签批_Android手写签批功能实现(适配Android6

Android手写签批功能的实现在于三个点&#xff0c;mupdf&#xff0c;偏移量的计算&#xff0c;droidText0.5.jar实际步骤&#xff1a;使用muPdf将PDF加载出来弹出透明的popwindow&#xff0c;popWindow使用画板(一般签批我们都会用有笔锋的钢笔或者毛笔)将签批好的图片生成Bitm…

华为新系统鸿蒙能互通吗,「连接」万物的鸿蒙,能拯救华为手机吗?

为 IoT 而生的鸿蒙操作系统&#xff0c;其优势与特点几乎都是围绕「万物互联」展开的。在曝光两年之后&#xff0c;华为的鸿蒙系统终于正式和用户见面了。6 月 2 日&#xff0c;华为鸿蒙操作系统及华为全场景新品发布会开启&#xff0c;正式推出 HarmonyOS 2.0&#xff0c;并发…

c++中outtextxy_第12章 坚持一百秒(《C和C++游戏趣味编程》配套教学视频)

本章我们将编写坚持一百秒游戏&#xff0c;玩家通过鼠标控制火箭躲避一架UFO和越来越多的反弹子弹&#xff0c;效果如图所示。首先学习图片的导入和显示&#xff0c;并利用结构体实现一颗反弹的子弹&#xff1b;然后学习面向对象编程的知识&#xff0c;利用类和对象实现新版本的…

update yum 到指定版本_centos使用yum update升级到指定小版本

参考&#xff1a; https://www.cnblogs.com/configure/p/10918189.html提供一个搜狐镜像的7.6的yum源&#xff1a;[C7.6.1810-base]nameCentOS-7.6.1810 - Basebaseurlhttp://mirrors.sohu.com/centos/7.6.1810/os/$basearch/gpgcheck1gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-K…

腾讯移动分析+html5,FAQ · 腾讯移动分析 文档

1. 常见问题1.1. 产品问题Q1:如何联系技术支持&#xff1f;目前问题统一在工单系统进行反馈&#xff0c;麻烦填写详细的信息&#xff0c;方便技术支持定位。Q2:腾讯移动分析是否付费&#xff1f;腾讯移动分析的现有功能都是免费的。Q3:自定义事件个数是否有限制&#xff1f;目前…

赛码行测题库_行测数字推理题库

实用文案 数字推理题 725 道详解 【 1 】 7 , 9 , -1 , 5 , ( ) A 、 4 ; B 、 2 ; C 、 -1 ; D 、 -3 分析 : 选 D , 7+9=16 ; 9+ ( -1 ) =8 ; ( -1 ) +5=4 ; 5+ ( -3 ) =2 , 16 , 8 , 4 , 2 等 比 【 2 】 3 , 2 , 5/3 , 3/2 , ( ) A 、 1/4</

dw中html颜色的设置颜色代码,Dreamweaver 如何编辑字体大小颜色

以下为学做网站论坛关于“Dreamweaver 如何编辑字体大小颜色”讲解视频教程。dreamweaver是个可视化的软件&#xff0c;你直接选中你要更改的设置&#xff0c;在编辑器中直接就可以更改了。或是用CSS也可以设置你说的那些内容字体大小、颜色样式。dreamweaver编辑字体大小、颜色…

python取出字典中最大值_python找出字典中value最大值的几种方法

假设定义一字典&#xff0c;m {"a":3,"e":6,"b":2,"g":7,"f":7,"c":1,"d":5}&#xff0c;在不知道key的情况下如何找出字典中value最大的所有key-value对&#xff1f;下面讨论几种方法。 1&#xff09…

html 图片position,【图解CSS#Position】

关于CSS position&#xff0c;来自MDN的描述&#xff1a;CSS position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left 属性则决定了该元素的最终位置。先看一个图片&#xff1a;child没设置position的样式代码如下&#xff1a;child1-1child1-2child1-3chi…

佳能g3800故障灯说明书_佳能打印机故障如何维修 佳能打印机故障维修方法【介绍】...

在现代办公中是离不开打印机的&#xff0c;一些办公文件都是需要用它来打印的&#xff0c;也因此在办公中的地位是很重要的。也正因此它要是出现了故障&#xff0c;会给我们带来很大的麻烦&#xff0c;很是影响工作进度。佳能是很知名的&#xff0c;即使是这样&#xff0c;它在…