模拟滚动条控制内容滚动

每次页面内容超出范围的时候,为了美观,我们都会加上滚动条处理,要是浏览器默认滚动条无法满足美感的时候,我们需要自己模拟出一个符合需求的滚动条,如下:

实现过程:

 1.简单样式:

#div1 {width: 30px; height: 500px; background: black; position: absolute; left: 10px; top: 10px;}#div2 {width: 30px; height: 30px; background: red; position: absolute; left: 0; top: 0;}#div3 {width: 498px; height: 498px; border: 1px solid green; position: absolute; left: 50px; top: 10px;overflow: hidden;}#div4 { position: absolute; left: 0; top: 0;}

2.结构
<body>   <div id="div1">       <div id="div2"></div>    </div>    <div id="div3">       <div id="div4">         不要读太多闲书,不要思考得太纯粹,不要只知道对别人尊重、体谅,要努力奋斗,多挣些钱,         多长些本事。到那个时候你读书的样子才是帅气的,也自然赢得别人的尊重和体谅,而且群友蜂拥而至。         条件优裕之后,富而有礼,富而不骄,谦卑待人,平等待人,人人就会觉得你修养好,进而爱慕你,更关         键的是他们需要你。若你不被人们需要,人家谁会记得住一个无用的高尚?古时那些道德极高、名声传天下         的人,我不相信他们现实中也是无用的人。假如你不进步、没本事,成天对人只有尊重有礼,谦虚谨慎,         那么人们多半会以为你无能、懦弱、平庸。他们会觉得你的善不是因为有道德,而是因为比别人卑微,而且有求于人。         文/冯小欢(简书作者)         原文链接:http://www.jianshu.com/p/6aa604087ea9         著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。         所以,奉劝读太多闲书的人,要顾及时代的潮流,要看清自己所处环境的时势。读闲书的好处,固然是有的,而且历来都         是有的。这里的闲书,指的不是排遣无聊的小说之流,而是代表人类高水平知识和写满人性普遍经验的然而又不合时势、         暂时不被潮流所亟需的各类作品。简单说,就是很有价值的经典但是看起来没什么用的大书。读闲书,要有经济基础,         你要有在经济上以致在爱情、生活、社交等等方面付出代价的准备         。不然你对闲书的热爱,早晚会被现实剥蚀殆尽,到那时你会为自己当年的幼稚悔之不迭。         文/冯小欢(简书作者)         原文链接:http://www.jianshu.com/p/6aa604087ea9         著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。         你要有在经济上以致在爱情、生活、社交等等方面付出代价的准备         。不然你对闲书的热爱,早晚会被现实剥蚀殆尽,到那时你会为自己当年的幼稚悔之不迭。         文/冯小欢(简书作者)         原文链接:http://www.jianshu.com/p/6aa604087ea9         著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。         你要有在经济上以致在爱情、生活、社交等等方面付出代价的准备         。不然你对闲书的热爱,早晚会被现实剥蚀殆尽,到那时你会为自己当年的幼稚悔之不迭。         文/冯小欢(简书作者)         原文链接:http://www.jianshu.com/p/6aa604087ea9         著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。         你要有在经济上以致在爱情、生活、社交等等方面付出代价的准备         。不然你对闲书的热爱,早晚会被现实剥蚀殆尽,到那时你会为自己当年的幼稚悔之不迭。         文/冯小欢(简书作者)         原文链接:http://www.jianshu.com/p/6aa604087ea9         著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。         你要有在经济上以致在爱情、生活、社交等等方面付出代价的准备         。不然你对闲书的热爱,早晚会被现实剥蚀殆尽,到那时你会为自己当年的幼稚悔之不迭。         文/冯小欢(简书作者)         原文链接:http://www.jianshu.com/p/6aa604087ea9         著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。        </div>    </div></body>

3.逻辑代码
<script>window.onload = function() {

var oDiv1 = document.getElementById(‘div1‘);   var oDiv2 = document.getElementById(‘div2‘);   var oDiv3 = document.getElementById(‘div3‘);   var oDiv4 = document.getElementById(‘div4‘);

var iMaxTop = oDiv1.offsetHeight - oDiv2.offsetHeight;

oDiv2.onmousedown = function(ev) {

var ev = ev || event;

var disY = ev.clientY - this.offsetTop;

document.onmousemove = function(ev) {

var ev = ev || event;

var T = ev.clientY - disY;

if ( T < 0 ) {            T = 0;         } else if ( T > iMaxTop ) {            T = iMaxTop;         }

oDiv2.style.top = T + ‘px‘;

var iScale = T / iMaxTop;

document.title = iScale;

oDiv4.style.top = (oDiv3.clientHeight - oDiv4.offsetHeight) * iScale + ‘px‘;

}

document.onmouseup = function() {

document.onmousemove = document.onmouseup = null;

}

return false;

}

}</script>
分享技术,分享快乐!
时间: 2024-10-17 12:24:18

模拟滚动条控制内容滚动的相关文章

模拟垂直滚动条,增加内容可滑动

模拟垂直滚动条,效果如图所示 html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> .box { width: 300px; height: 500px; border: 1px solid red; margin:100px; position: rel

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

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 {

移动端 js 弹出层内容滚动的时候,不影响body的滚动条处理

如标题所示,这里受 https://segmentfault.com/a/1190000003849952 这篇文章的启发,自己重写了一下代码 效果图: 代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport&quo

JS按钮控制内容左右滚动

运行效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS按钮控制内容左右滚动</title> <style> *{ padding: 0; margin: 0;} li{ list-style: none;} .clearfix{ *zoom:1;} .clearfix

js控制网页滚动条往下滚动

function aa(i){ var tm = setInterval(function(){ var t = $(window).scrollTop(); var d = i < t ? Math.min((i-t)/10, -1) : Math.max((i-t)/10, 1) $(window).scrollTop( t + d ); if($(window).scrollTop()==i)clearInterval(tm); },30) } js控制网页滚动条往下滚动

javascript 实现模拟滚动条,但不支持鼠标滚轮

模拟滚动条做项目的时候,很多时候会用到,所以就写了一个这么模拟滚动条,但是不支持滚轮事件 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <style> *{padding:0;margin:0;} .scroll{width:320px;marg

原生js模拟滚动条

滚动条的基本交互有两个,鼠标拖拽滚动条和滚轮滚动. 滚动条涉及到的dom元素:1.主体区域(obj,box2与box4的父元素),鼠标滚动的触发主体,包含内容和滚动条,宽高自定.2.滚动条(box1),宽自定,高按内容区比例计算.3.滚动区域(box2,box1的父节点),高与内容可视区的高相同,宽自定.4.内容(box3,滚动的内容主体).5.内容(box4,box3的父元素,有限宽高,内容可视区). 实现的基本原理就是以上元素绝对定位,通过鼠标的交互事件,来完成相关dom的top值,已达到模

div模拟滚动条

如果内容有误,还请留言帮我指出,非常感谢 有木有觉得window下浏览器默认的滚动条很丑? 特别是在黑色风格的网站中 用iframe嵌套或者overflow:auto 出现滚动条的时候 那么我们来模拟一个滚动条吧 demo01 说明: 1.content元素不能有border 如果有10px的border 把滚条拖到最下面后 将有10px内容看不到 2.调用方式:scrollFuc('content','nr','scroll_con','scroll_box'); 不足: 此版本没有抽象出对s

javascript动画系列第五篇——模拟滚动条

× 目录 [1]原理介绍 [2]数字加减 [3]元素尺寸[4]内容滚动 前面的话 当元素内容溢出元素尺寸范围时,会出现滚动条.但由于滚动条在各浏览器下表现不同,兼容性不好.所以,模拟滚动条也是很常见的应用.本文将详细介绍滚动条模拟 原理介绍 滚动条模拟实际上和元素模拟拖拽类似.仅仅通过范围限定,使元素只可以在单一方向上拖拽 <div id="box" style="height: 200px;width: 16px;background-color:#F5F5F5;bo