左侧滚动条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只能找当前屏幕上的标签,如果标签在当前页面没显示下,需要拖动滚动条才能查看到这个元素,这时候就要操作浏览器的滚动条,让当前页面显示这个元素才可以操作,在 ...
随机推荐
- Hadoop记录-变更
1.安装salt-minion sed -i 's/^#//g' /etc/yum.repos.d/centos7.4.repo sed -i 's/enabled=0/enabled=1/g' /e ...
- Linux学习笔记:【004】Linux内核代码风格
Chinese translated version of Documentation/CodingStyle If you have any comment or update to the c ...
- Python assert作用
使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前, 我们不知道程序在哪里会出错.与其让它在运行最后崩溃,不如在出现错误 ...
- ibatis项目启动报错The string "--" is not permitted within comments【原】
该错误主要就是因为xml中<!-- [注释]--> 注释与-->之间没有空格造成xml解析错误 sqlMapConfig.xml内容如下 <?xml version=" ...
- 在js或jquery中动态添加js脚本【转】
起因: 我们在用js动态写入script时,会导致</script>后面的所有语句都变为普通文本,导致html展示无效, 所以我们需要规避</script>问题. 解决方案一( ...
- 51Nod - 1228 序列求和 (自然数幂和+伯努利数)
https://vjudge.net/problem/51Nod-1228 Description T(n) = n^k,S(n) = T(1) + T(2) + ...... T(n).给出n和k, ...
- HDU 1284(钱币兑换 背包/母函数)
与 HDU 1028 相似的题目. 方法一:完全背包. 限制条件:硬币总值不超过 n. 目标:求出组合种数. 令 dp[ i ][ j ] == x 表示用前 i 种硬币组合价值为 j 的钱共 x 种 ...
- Openresty 学习笔记(二)Nginx Lua 正则表达式相关API
ngx.re.match 语法: captures, err = ngx.re.match(subject, regex, options?, ctx?, res_table?) 环境: init_w ...
- ThinkPHP中RBAC权限带菜单栏显示和详细权限操作
RBAC是什么,能解决什么难题? RBAC是Role-Based Access Control的首字母,译成中文即基于角色的权限访问控制,说白了也就是用户通过角色与权限进行关联[其架构灵感来源于操作系 ...
- Android 全屏设置和禁止横屏竖屏切换
android:screenOrientation="portrait" #禁止屏幕横竖切换,portrait为纵向,landscape为横向