左侧滚动条js
<script>
var left = document.getElementById('main-left');
var right = document.getElementById('main-right');
var array = document.getElementsByClassName('zone-box');
function buildDiv(scroll, tb, size) {
var old = scroll.getElementsByTagName("div");
if (old.length > 0) {
for (var o = 0; o < old.length; o++) {
old[o].remove();
}
}
var tb2 = tb.cloneNode(true);
var len = tb2.rows.length;
for (var i = len; i > size; i--) {
tb2.deleteRow(size);
}
var bak = document.createElement("div");
bak.style.width = scroll.clientWidth + 'px';
scroll.appendChild(bak);
bak.appendChild(tb2);
bak.style.position = "absolute";
bak.style.backgroundColor = "#cfc";
//表头背景颜色,请保持和css中定义颜色一样
bak.style.display = "block";
bak.style.left = 0;
bak.style.top = "0px";
scroll.onscroll = function () {
bak.style.top = this.scrollTop + "px";
}
}
window.onload = function () {
for (var s = 0; s < array.length; s++) {
if (array[s].getElementsByTagName('table').length > 0) {
buildDiv(array[s], array[s].getElementsByTagName('table')[0], 1);
}
}
//添加目录
var h2List = [], h3List = [], h4List = [];
var i1 = 0, i2 = 0, i3 = 0, n1 = 0, n2 = 0, n3 = 0;
var temp = '<dl>';
var cateList = right.innerHTML.match(/(<h[2-5][^>]*>.*?<\/h[2-5]>)/ig);
for (var i = 0; i < cateList.length; i++) {
if (/(<h2[^>]*>.*?<\/h2>)/ig.test(cateList[i])) {
n1++;
n2 = 0;
temp += '<dd class="cate-item1"><span>' + n1 + '</span><a href="#' + n1 + '">' + cateList[i].replace(/<[^>].*?>/g, "") + '</a></dd><div style="clear:both"></div>';
h2List[i1] = n1;
i1++;
} else {
if (/(<h3[^>]*>.*?<\/h3>)/ig.test(cateList[i])) {
n2++;
temp += '<dd class="cate-item2"><span>' + n1 + '.' + n2 + '</span><a href="#' + n1 + '_' + n2 + '">' + cateList[i].replace(/<[^>].*?>/g, "") + '</a></dd><div style="clear:both"></div>';
h3List[i2] = n1 + '_' + n2;
i2++;
n3 = 0;
} else {
n3++;
temp += '<dd class="cate-item3"><span>' + n1 + '.' + n2 + '.' + n3 + '</span><a href="#' + n1 + '_' + n2 + '_' + n3 + '">' + cateList[i].replace(/<[^>].*?>/g, "") + '</a></dd><div style="clear:both"></div>';
h4List[i3] = n1 + '_' + n2 + '_' + n3;
i3++;
}
}
}
temp += '</dl>';
left.innerHTML = temp; //默认第一个处于aitive状态
left.getElementsByTagName('dd')[0].className = left.getElementsByTagName('dd')[0].className + " active";
};
left.style.height = (document.documentElement.clientHeight - 200) + "px";
window.onresize = function () {
var array = document.getElementsByClassName('zone-box');
for (var s = 0; s < array.length; s++) {
if (array[s].getElementsByTagName('table').length > 0) {
buildDiv(array[s], array[s].getElementsByTagName('table')[0], 1);
}
}
left.style.height = (document.documentElement.clientHeight - 200) + "px";
}; //点击右侧书签添加active
if (left.addEventListener) {
left.addEventListener("click", function (e) {
for (var c = 0; c < left.getElementsByTagName('dd').length; c++) {
left.getElementsByTagName('dd')[c].className = left.getElementsByTagName('dd')[c].className.replace("active", "");
}
e.target.parentNode.className = e.target.parentNode.className + " active";
});
} else {
left.attachEvent("onclick", function (e) {
for (var c = 0; c < right.getElementsByTagName('dd').length; c++) {
left.getElementsByTagName('dd')[c].className = left.getElementsByTagName('dd')[c].className.replace("active", "");
}
e.srcElement.parentNode.className = e.srcElement.parentNode.className + " active";
})
}
window.onscroll = function () {
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if (scrollTop >= 100) {
left.style.position = "fixed";
left.style.top = 10 + 'px';
} else {
left.style.position = "static";
}
}
</script>
左侧滚动条js的更多相关文章
- 自定义滚动条Js简版
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>自定义滚 ...
- 防刷新jq左侧滚动条导航展示
html代码: <div class="fangchan_navcont"> <div class="fangchan_nav" ...
- javascript滚动条之ScrollBar.js
ScrollBar.js是一个仅仅120行的滚动条JS插件,使用非常方便 详情阅读:https://git.oschina.net/wuquanyao/scrollbar.js/*========== ...
- gVIM+zencoding快速开发HTML/CSS/JS(适用WEB前端)
一.真正解决了UTF-8中文乱码的各种问题(菜单乱码,内容乱码,提示信息乱码),不用担心WIN用默认编码写的东西在Linux乱码,或在Linux(zh_CN.UTF-8时)写的东西在WIN下乱码.在A ...
- js汉语转拼音(全拼、首字母、拼音首字母)
新建js文件first_alphabet.js // JavaScript Document // 汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell //函数使 ...
- 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...
- 二十九 Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求
selenium模块 selenium模块为第三方模块需要安装,selenium模块是一个操作各种浏览器对应软件的api接口模块 selenium模块是一个操作各种浏览器对应软件的api接口模块,所以 ...
- 《selenium2 python 自动化测试实战》(16)——js操作补充
js修改readonly属性 我们看到这里日期框标签中有readonly属性,如果我们直接send_keys就无法输入内容,这时我们需要先去掉readonly属性: js ='document.get ...
- selenium--浏览器滚动条操作
前戏 在进行web自动化的时候,selenium只能找当前屏幕上的标签,如果标签在当前页面没显示下,需要拖动滚动条才能查看到这个元素,这时候就要操作浏览器的滚动条,让当前页面显示这个元素才可以操作,在 ...
随机推荐
- Spring JPA学习笔记
目录 什么是JPA? 引入配置 新建一个Entity Bean类 JPA的增删改查 新建操作接口 新建测试类 总结 什么是JPA? 什么是JDBC知道吧?数据库有Mysql,SQL Server,Or ...
- python 模块一(random,counter,defaultdict,time,wraps,reduce) 栈 队列 双向队列
####################总结####################### 模块:你写的py文件 引用其他模块 1.import 模块 2.from 模块 import 功能,类,变量 ...
- Hadoop记录-变更
1.安装salt-minion sed -i 's/^#//g' /etc/yum.repos.d/centos7.4.repo sed -i 's/enabled=0/enabled=1/g' /e ...
- Tips and Tricks for Debugging in chrome
Tips and Tricks for Debugging in chrome Pretty print On sources panel ,clicking on the {} on the bot ...
- 解析ArcGis的字段计算器(一)——数值型数据计算,从“面积计算”开始
先来点儿背景知识铺垫: ArcMap的字段计算器提供了两种脚本语言的支持用以计算,两种脚本语言是VBScript与Python. 多数人选择使用前者,因为它的基本函数和Excel的函数貌似一样.注意我 ...
- [Java JNI] [Windows] [Visual Studio] [DLL] [UnsatisfiedLinkError]
有时候使用 GCC for Windows 生成 DLL 动态链接库时, 由于各种原因, 即使加载了动态链接库, JVM 仍然找不到符号, 从而产生 java.lang.UnsatisfiedLink ...
- 十一、移植优化---CONFIG 优化进 menuconfig(2)
11.3 jz2440.h 中的剩余宏移植 11.3.1 CONFIG_SYS_TEXT_BASE CONFIG_SYS_TEXT_BASE:设置系统代码段的基地址,设为 0x0:menuconfig ...
- C# WinForm开发系列 - Crystal Report水晶报表
转自:ttp://www.cnblogs.com/peterzb/archive/2009/07/11/1521325.html 水晶报表(Crystal Report)是业内最专业.功能最强的报表系 ...
- python-类型转化
s='1234' a=int(s) 字符串转换成整数 s=str(a) 整数转换成字符串
- [C++]PAT乙级1010. 一元多项式求导 (25/25)
/* 1010. 一元多项式求导 (25) 设计函数求一元多项式的导数.(注:x^n(n为整数)的一阶导数为n*x^n-1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1 ...