原生JS自定义滚动条
来源:互联网 发布:淘宝0秒付款 编辑:程序博客网 时间:2024/05/16 14:49
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
*{ margin:0; padding:0}
#box{ width:300px; height:400px; border:1px solid #ccc; position:relative; margin:100px auto; overflow:hidden}
#box p{ position:absolute; left:0; margin-right:30px}
#box span{ position:absolute; width:20px; height:50px; background:#987474; top:0; right:0}
</style>
<script>
window.onload=function(){
var oBox=document.getElementById('box');
var oP=oBox.getElementsByTagName('p')[0];
var oSpan=oBox.getElementsByTagName('span')[0];
//onmousedown开始拖拽
oSpan.onmousedown=function(ev){
ev=ev ||event;
//记录偏移
var disY=ev.clientY-oSpan.offsetTop;
//拖拽
document.onmousemove=function(ev){
ev=ev ||event;
var t=ev.clientY-disY; //减去偏移
if(t<0){t=0};
if(t>oBox.offsetHeight-oSpan.offsetHeight-2){
t=oBox.offsetHeight-oSpan.offsetHeight-2
};
oSpan.style.top=t+'px'; //滚动条进度
//计算比率
var rate=t/(oBox.offsetHeight-oSpan.offsetHeight-2); //比率
console.log(rate);
//移动p溢出部分
oP.style.top=-(oP.offsetHeight-oBox.offsetHeight)*rate+"px";
//由于p标签是往上移动,所以top应该为负值
};
//停止拖拽
document.onmouseup=function(){
document.onmousemove=null;
};
//阻止默认事件 圈选文字
return false;
}
};
</script>
</head>
<body>
<div id="box">
<p>
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。 1998年6月,ECMAScript 2.0版发布。 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。 1998年6月,ECMAScript 2.0版发布。 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoossss、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoossss、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
</p>
<span></span>
</div>
</body>
</html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
*{ margin:0; padding:0}
#box{ width:300px; height:400px; border:1px solid #ccc; position:relative; margin:100px auto; overflow:hidden}
#box p{ position:absolute; left:0; margin-right:30px}
#box span{ position:absolute; width:20px; height:50px; background:#987474; top:0; right:0}
</style>
<script>
window.onload=function(){
var oBox=document.getElementById('box');
var oP=oBox.getElementsByTagName('p')[0];
var oSpan=oBox.getElementsByTagName('span')[0];
//onmousedown开始拖拽
oSpan.onmousedown=function(ev){
ev=ev ||event;
//记录偏移
var disY=ev.clientY-oSpan.offsetTop;
//拖拽
document.onmousemove=function(ev){
ev=ev ||event;
var t=ev.clientY-disY; //减去偏移
if(t<0){t=0};
if(t>oBox.offsetHeight-oSpan.offsetHeight-2){
t=oBox.offsetHeight-oSpan.offsetHeight-2
};
oSpan.style.top=t+'px'; //滚动条进度
//计算比率
var rate=t/(oBox.offsetHeight-oSpan.offsetHeight-2); //比率
console.log(rate);
//移动p溢出部分
oP.style.top=-(oP.offsetHeight-oBox.offsetHeight)*rate+"px";
//由于p标签是往上移动,所以top应该为负值
};
//停止拖拽
document.onmouseup=function(){
document.onmousemove=null;
};
//阻止默认事件 圈选文字
return false;
}
};
</script>
</head>
<body>
<div id="box">
<p>
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。 1998年6月,ECMAScript 2.0版发布。 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。 1998年6月,ECMAScript 2.0版发布。 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoossss、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoossss、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
</p>
<span></span>
</div>
</body>
</html>
阅读全文
0 0
- 原生JS自定义滚动条
- JS原生实现自定义滚动条
- js原生滚动条动画
- JS原生之----滚动条
- js自定义滚动条
- js自定义滚动条
- 用原生js写滚动条
- js实现自定义滚动条
- js实现自定义滚动条
- js实现自定义滚动条
- 原生JS控制多个滚动条同步跟随滚动
- 自定义滚动条(原生,兼容ie8以上)
- JS-自定义滚动条的几个实例
- js实现一个自定义的滚动条
- mCustomScrollbar.js自定义滚动条…
- 原生js阻止滚动
- 无缝滚动原生js
- 原生js实现随着滚动条滚动,导航会自动切换的效果
- C++日常笔记(6)
- linux下的top命令参数说明 (virt,res,shr,data 的意义)
- Git提交空目录
- ProtoBuf 与 gRPC 你需要知道的知识
- PHP GD库相关图像生成和处理函数
- 原生JS自定义滚动条
- Codeforces Round #173 (Div. 2) E. Sausage Maximization —— Trie树 + 前缀和
- Java序列化与反序列化
- 第一章:tornado入门环境搭建
- 并发队列-无界阻塞优先级队列PriorityBlockingQueue原理探究
- 64位平台C/C++开发注意事项
- java多线程之join
- 从零开始:学flask 服务端API
- HTML DOM setInterval() 方法