http://www.cnblogs.com/snandy/p/4013137.html
JavaScript目录菜单滚动反显组件,有以下两个特点
- 每个导航菜单项(nav)对应页面一个内容区域(content)
- 滚动页面到特定内容区域(content)时,对应的菜单会自动切换,一般会添加一个高亮样式
这个功能可以很方便的提醒用户目前所浏览的位置,有时目录菜单还会设计为滚动时一直固定在指定位置。
以下为此类功能的应用示例:
1. 京东团购首页左侧导航菜单
2. 京东图书详细页右侧图书目录导航
3. 京东团购品牌惠楼层分类菜单
实现思路:
和吸顶灯类似,也是滚动在特定内容的时候去对特定的元素做样式处理。不同的是这里的每一个菜单项一一对应相应的内容区域。
- 给菜单和内容区域加特定的属性(data-xx),关联起对应关系
- 记录所有内容(content)的位置信息(注意,需要在页面load后)
- 给window添加scroll事件,当滚动到指定内容时高亮显示对应的菜单项(因为是一一对应的,通过索引就可以找到对应菜单项)
如果使用了jQuery,通过插件方式实现不过50行代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/* * 导航/菜单高亮组件
* option
* nav 导航/菜单选择器
* content 内容模块选择器
* diffTop 距离顶部的误差值
* diffBottom 距离底部的误差值
* lightCls 高亮的class
*
*/
$.fn.navLight = function (option, callback) {
option = option || {}
var nav = option.nav || '[data-widget=nav]'
var content = option.content || '[data-widget=content]'
var diffTop = option.diffTop || 200
var diffBottom = option.diffBottom || 500
var lightCls = option.lightCls || 'curr'
var $self = $( this )
var $nav = $self.find(nav)
var $content = $self.find(content)
// 记录每个分类的位置
var contentPosi = $content.map( function (idx, elem) {
var $cont = $(elem)
var top = $cont.offset().top
var height = $cont.height()
return {
top: top-diffTop,
bottom: top+diffBottom,
jq: $cont
}
})
var $win = $(window)
var $doc = $(document)
var handler = $.throttle( function (e) {
var dTop = $doc.scrollTop()
highLight(dTop)
}, 100)
function highLight(docTop) {
contentPosi.each( function (idx, posi) {
if (posi.top < docTop && posi.bottom > docTop) {
$nav.removeClass(lightCls)
$nav.eq(idx).addClass(lightCls)
if (callback) {
callback($nav, $content)
}
}
})
}
$win.scroll(handler)
}; |
相关推荐
基于Vue的移动端可滑动菜单栏
这是React的水平滚动菜单组件。 菜单组件具有自适应宽度,只需为父容器设置宽度。 项目宽度将根据CSS样式确定。 注意:我没有太多时间获得项目支持。 任何帮助表示赞赏。 对于导航,您可以使用箭头,鼠标滚轮或仅...
实例043 应用JavaScript实现指定尺寸无边框无滚动条窗口 67 1.8 水平导航条应用 69 实例044 图片按钮导航条 69 实例045 导航条的动画效果 71 实例046 不用图片实现质感导航条 72 1.9 下拉菜单式导航条 73 实例047 二...
主要介绍了js+CSS模拟select控件下拉菜单效果,通过javascript鼠标事件结合css控制实现select下拉菜单效果,整体效果华丽美观,需要的朋友可以参考下
实例305 利用JavaScript实现窗口自动滚动 482 12.3 JavaScript对时间、XML文档和 多媒体的操作 483 实例306 利用JavaScript实现在线考试倒计时 483 实例307 在考试页的状态栏中显示JavaScript 数字时钟 484 实例308 ...
目录 -------------------------------------------------------------------------------- 第1章 javascript概述 1 1.1 什么是脚本语言 2 1.2 javascript简介 2 1.3 javascript与java的关系 3 1.4 javascript...
是 Android 上实现类似 Facebook 和 Path 2.0 滑动式菜单的组件。 12、AsyncImageView 是 Android 上的一个异步从网络上获取图片并进行浏览的开源组件,可自动在本地进行缓存。该项目是 GreenDroid 的一部分。 13...
React滚动同步 跨多个可滚动元素的同步滚动位置 演示 文档和示例 执照 麻省理工学院 安装 npm install --save react-scroll-sync 用法 import React , { Component } from 'react' ; import { ScrollSync , ...
一个包含Javascript插件,Vue3组件,Vue3指令的轻量工具组件库javascript插件或工具的个人组件包 当前该仓库已使用Vue3 + Typescript ,基于Vue2组件的旧版项目请前往查看。 关联 组件 :sparkles:通过拖拽更改...
23.jQuery实现slider图片滚动,单个滚动,成组滚动示例 24.jQuery实现产品图片循坏旋转的代码 25.jQuery实现动态图文分组排序切换源码 26.jQuery实现图片3D旋转特效插件 v1.1版本下载 27.jQuery实现图片3D...
一款JavaScript 框架:它对脑力记忆要求更低,应用更轻松;它集成了特效、控件,可以一句代码就实现常见...它包含JS日历组件、下拉菜单、图像渐显效果、cookie应用、文本编辑器、滚动条、Tab、遮罩等常用网页特效组件。
React菜单精心制作的 React 菜单安装$ npm install react-menus --save描述react-menus组件是一个类似于 React 小部件的上下文菜单。 它具有智能定位、过多菜单项上的溢出滚动和智能子菜单定位。变更日志查看路线图...
包含元素常见UI控件的可访问,轻量,无样式的实现。 演示基本的交互式UI模式,例如弹出菜单,工具...另一方面,滚动自己的组件感觉就像是在重新发明轮子,并使可访问性受到威胁。 包含元素以以下形式提供这些基本行为
它包含JS日历组件、下拉菜单、图像渐显效果、cookie应用、文本编辑器、滚动条、Tab、遮罩等常用网页特效组件。 我承认,jQuery 是优秀的,特别是基于 jQuery 的特效、控件非常之多,为 jQuery 增色不少。
滚动条组件 第31章 输入条组件 使用输入条组件 输入条组件 第32章 列表框组件 使用列表框组件 列表框组件的编联 列表框组件的属性 第33章 文本组件 文本索引 文本标记 文本标签 文本信息的选择( ...
用户界面 一组构建为 AngularJS 指令和服务的可重用 UI 组件,包括: ...无限滚动组件。 - 智能寻呼机 带有预缓存系统的寻呼机组件。 - 滑动菜单 可滑动菜单。 - 吐司 用于显示应用程序消息的 UI 组件。
flex3的cookbook书籍完整版dpf(包含目录),目录是我花了两个多小时自己整理的,希望对大家有帮助。 目录: 第一章.Flex与ActionScript基础(3) 1.1节.用FlexBuilder创建Flex项目 1.2节.用FlexBuilder创建Flex库项目 ...
在本程序中使用JavaScript脚本技术实现了导航菜单设计,电影图片不间断滚动效果设计等;本程序所运用到的AJAX无刷新技术,有效避免了我们在浏览网页时长时间打不开网页的情况发生;在index主程序页面中,使用了...