div模拟滚动条

如果内容有误,还请留言帮我指出,非常感谢

有木有觉得window下浏览器默认的滚动条很丑?

特别是在黑色风格的网站中 用iframe嵌套或者overflow:auto 出现滚动条的时候

那么我们来模拟一个滚动条吧

demo01

说明:
    1.content元素不能有border  如果有10px的border 把滚条拖到最下面后 将有10px内容看不到
    2.调用方式:scrollFuc(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);
不足:
    此版本没有抽象出对scrollBox高度的设置 因为在nr有变化时 将会对scrollBox高度进行再设置 比如ajax请求改变内容

----------------------------------

demo02

说明:
   	1.content元素不能有border  如果有10px的border 把滚条拖到最下面后 将有10px内容看不到
   	2.此版本抽象出对scrollBox高度的设置 但是调用方式有所改变:
     	scrollFuc(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);//启动函数
	    scrollBoxH(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);//设置box高度 如果nr有增加或减少 就要再调用这个函数
不足:
   	在scrollBoxH函数内部 设置了scroll_box的高度后 会重置nr和滚条的位置为起始位置 在有些情况下是不合理的(改变了nr后 但是不要还要保持nr和滚条的当前位置)
----------------------------------

demo03

说明:
   	1.content元素不能有border  如果有10px的border 把滚条拖到最下面后 将有10px内容看不到
   	2.此版本抽象出对scrollBox高度的设置 但是调用方式有所改变:
     	scrollFuc(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);//启动函数
	    scrollBoxH(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);//设置box高度 如果nr有增加或减少 就要再调用这个函数
    3.修改了scrollBoxH函数,调用方式:
        表示不刷新当前位置:
                        scrollBoxH(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘,false);
        表示刷新当前位置(最后的true参数可省略):
                        scrollBoxH(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘,true);
        表示nr跳至指定位置(即设置nr的top属性为-38,当最后的参数为足够小时如-99999999 nr会跳至最底部 当最后的参数为正时会跳至顶部):
                        scrollBoxH(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘,-38);
不足:
    代码有点乱 有时间了再来整理
----------------------------------

demo04

说明:
   	1.‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘四个元素都不要能有border!!!
   	2.此版本抽象出对scrollBox高度的设置(根据内容) 但是调用方式有所改变:
     	scrollFuc(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);//启动函数
	    setScroll(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘);//设置box高度 如果nr有增加或减少 就要再调用这个函数
    3.修改了setScroll(scrollBoxH)函数,调用方式:
        表示不刷新当前位置:
                        setScroll(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘,false);
        表示刷新当前位置(最后的true参数可省略):
                        setScroll(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘,true);
        表示nr跳至指定位置(即设置nr的top属性为-38,当最后的参数为足够小时如-99999999 nr会跳至最底部 当最后的参数为正时会跳至顶部):
                        setScroll(‘content‘,‘nr‘,‘scroll_con‘,‘scroll_box‘,-38);
不足:
      可以改为面向对象的形式
      滚动条上下两个按钮没有写事件(如果有必要的话);
      不知道用scrollTop写  会不会更好
      不能设置#content 的border
      传参形式可以改为对象的形式更合理
      
----------------------------------

demo05

说明:
    兼容性:ie6+(混杂模式) Firefox3.6.28+  oprea9.0+
新版说明:
    简单封装了
    参数以对象的形式传入
不足:
    还可以进一步封装 优化
    在内容不足时 隐藏滚动条
    无法实现横向滚动条
      
----------------------------------

demo06(完整版)  

兼容性:ie6+(混杂模式) Firefox3.6.28+  oprea9.0+
说明:
    兼容性:ie6+(混杂模式) Firefox3.6.28+  oprea9.0+
    简单封装了
    参数以对象的形式传入

新版说明:
    在内容不足时 隐藏滚动条
    添加了水平滚动条的功能
    con nr scon sbox 都可以添加border
    修复了 滚动区域内容不足时 鼠标滚轮不能触发外层滚动条的滚动事件
    修复了 在子窗口滚动到端点时  无法触发父窗口的滚动事件

不足:
    内容不足时 没有注销相关事件 如果在web开发中 用滚动插件来替代浏览器默认的滚动条 在内容不足时 每滚动一次 都会触发相关事件 影响性能 从代码的角度上来说 也是不严谨的
----------------------------------

...

开始做的时候没觉得是个麻烦事 ,真正做了之后才知道没那么简单...

还有继续优化的地方,等有空了再来改吧

时间: 2024-10-19 12:59:26

div模拟滚动条的相关文章

DIV模拟的自定义滚动条

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>div模拟的自定义滚动条</title><style type="text/css">* { margin: 0; padding: 0;} p { heigh

div模拟textarea以实现高度自适应实例页面

作为多行文本域功能来讲,textarea满足了我们大部分的需求.然而,textarea有一个不足就是不能像普通div标签一样高度可以跟随内容自适应.textarea总是很自信地显摆它的滚动条,高度固执地岿然不动.所以,有时候,为了增加交互体验想让文本域高度自适应的时候,就会遇到麻烦. <!DOCTYPE <!DOCTYPE html> <html> <head> <title>div模拟textarea以实现高度自适应实例页面</title>

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

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

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

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

模拟滚动条

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>模拟滚动条</title> <style type="text/css"> body, div { margin:0; padding:0; } .scrollbar { width:300px; height:300px; border:2px solid #

让DIV的滚动条自动滚动到最底部 - 3种方法

要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息. 聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条. 但同样的代码拿到我这里却完全失效,又仔细查了下资料说XHTML标准下scrollTop的值恒为0,解决办法是使用 document.documentElement.scrollTop代替document.body.scrollTop,讲了半天所解决的是整个页 面的滚动条.这个方法我是用不了了,因为

js模拟滚动条

1 <!DOCTYPE html> 2 <html> 3 <head> 4 5 <title></title> 6 <style type="text/css"> 7 * { margin: 0px; padding: 0px; } 8 .scroll-boxall { width: 312px; height: 500px; overflow: hidden; zoom: 1; border: 1px solid

jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部

转自:http://blog.163.com/[email protected]/blog/static/1284651702010894509982/ 关于 jQuery 的 Div 标签的滚动条的概念,没有几个人能够完全.正确搞明白的. 我知道很多人不同意我的观点.但是如果去百度上搜素,与 jQuery 滚动条有关的信息,都是关于滚动条外观和滚动条插件的.我最近在制作一个滚动条相关的页面效果,去 CSDN 论坛里提问,得到了一段代码,还是错误的. jQuery 里和滚动条有关的概念很多,但是

div显示滚动条

div显示上下左右滚动条 <div style="width:260px;height:120px; overflow:scroll; border:1px solid;"> 这里是你要显示的内容 </div> div显示上下滚动条的css代码 <div style="width:260px;height:120px; overflow-y:scroll; border:1px solid;"> 这里是你要显示的内容 </d