javascript 滚动条

滚动条的实现原理和上一篇文章中的拖拽有很大关系,滑动条就是通过拖拽实现的,通过计算滑动条的拖拽区间来得出一个比例scale,这个就是咱们要用到的文字滚动距离了,

div3里别忘记添加文字

具体代码如下

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>New Web Project</title>
		<style>
			#parent{
				width:600px;
				height:20px;
				background:#CCCCCC;
				position: relative;
			}
			#div1{
				width: 20px;
				height:20px;
				top:0px;
				left:0px;
				background:#FF0000;
				position: absolute;
			}
			#div2{
				width:300px;
				height:300px;
				border:1px solid #222222;
				position:relative;
				margin-top:10px;
				overflow:hidden;
			}
			#div3{
				padding:5px;
				position: absolute;
			}
		</style>
		<script>
			window.onload=function(){
				var oParent=document.getElementById('parent');
				var oDiv1=document.getElementById('div1');
				var oDiv2=document.getElementById('div2');
				var oDiv3=document.getElementById('div3');
				oDiv1.onmousedown=function(evt){
					var e=evt||event;
					var disX=e.clientX-oDiv1.offsetLeft;
					document.onmousemove=function(evt1){
						var e1=evt1||event;
						var posX=e1.clientX-disX;
						if(posX<0)
						{
							posX=0;
						}
						else if(posX>oParent.offsetWidth-oDiv1.offsetWidth)
						{
							posX=oParent.offsetWidth-oDiv1.offsetWidth;
						}
						oDiv1.style.left=posX+'px';
						var scale=posX/(oParent.offsetWidth-oDiv1.offsetWidth);
						oDiv3.style.top=-(oDiv3.offsetHeight-oDiv2.offsetHeight)*scale+'px';

					};
					document.onmouseup=function(){
						document.onmousemove=null;
						document.onmouseup=null;
					};
					return false;
				};

			};
		</script>
	</head>
	<body>
		<div id="parent">
			<div id="div1"></div>
		</div>
		<div id="div2">
			<div id="div3">
			</div>
		</div>
	</body>
</html>

运行结果图:

时间: 2024-11-16 18:09:27

javascript 滚动条的相关文章

javascript滚动条响应鼠标滑轮的实现上下滚动事件

实现鼠标滚动滚轮事件: <script type="text/javascript"> var scrollFunc=function(e){ e=e || window.event; if(e.wheelDelta){//IE/Opera/Chrome if(e.wheelDelta==120) { //向上滚动事件 alert(e.wheelDeta +"向上"); }else { //向上滚动事件 alert(e.wheelDeta +"

javascript滚动条之ScrollBar.js

ScrollBar.js是一个仅仅120行的滚动条JS插件,使用非常方便 详情阅读:https://git.oschina.net/wuquanyao/scrollbar.js/*=================================  * ScrollBar.js beta  * Author:wuquanyao  * Email: ScrollBar.js是一个仅仅120行的滚动条JS插件,使用非常方便 详情阅读:https://git.oschina.net/wuquanyao

JavaScript滚动条案例

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { margin: 0; padding: 0; } .box { width: 300px; height: 500px; border: 1px solid red; margin: 100px; pos

JavaScript 滚动条事件

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script src="js/test.js" type="text/javascript" charset="utf-8"></script></he

javascript 滚动条下拉导航fixed

<!doctype html> <html> <style> body{ margin:0; padding:0; } #top{ background:#000; width:400px; height:30px; } .a{ position:fixed; top:0; left:0; } </style> <body> <div style="height:300px;width:100%;background:#ccc;&

自定义滚动条——控制文字的滚动

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; min-height: 36.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #d74200 } p.p4 {

javascript -- (js滚动条实现)

<style> * { margin : 0; padding : 0; } </style> <script type = "text/javascript" > var body = document.getElementsByTagName('body')[0]; var wrap = document.createElement('div');   //创建最外层边框 var p = document.createElement('p');

javascript之检测浏览器滚动条宽度

在编写javascript代码时,有时需要用到滚动条的宽度,然而不同浏览器下滚动条的宽度可能不同. 在jquery ui源代码中发现这样的一段代码: var scrollbarWidth=function () { if (cachedScrollbarWidth !== undefined) { return cachedScrollbarWidth; } var w1, w2, div = $("<div style='display:block;position:absolute;w

JavaScript对滚动条的操作

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>在div区域双击鼠标可以看到效果</title> <script type="text/JavaScript"> var currenTop,timer; function endScroll()