div模拟滚动条

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="html.aspx.cs" Inherits="WebApplication1.html" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <style type="text/css">

        *

        {

            margin0;

            padding0;

        }

        p

        {

            height1000px;

        }

        #mainBox

        {

            width250px;

            height500px;

            border1px #bbb solid;

            positionrelative;

            overflowhidden;

            margin50px auto;

        }

        #content

        {

            height:1000px;

            positionabsolute;

            left0;

            top0;

        }

        .scrollDiv

        {

            width6px;

            positionabsolute;

            top0;

            background#666;

            border-radius10px;

        }

        /*  章节类别  */

.m-catr{padding:15px 0 10px 12px;*padding:15px 0 10px 14px;}

.m-catr .tte{float:leftline-height:35pxtext-align:left;font-size:14pxfont-weight:boldcolor:#5b98db;}

#content dl{width:225pxfloat:leftmargin-top:10px;}

#content dl dt.m-catr dl dd{float:left;width:100%line-height:25pxtext-align:leftcolor:#444;}

#content dl dt{font-weight:bold;}

#content dl dd{margin-left:12px;}

    </style>

    <script src="Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>

    <title></title>

</head>

<body>

    <!-- 章节类别 -->

    <div class="m-catr f-cb">

        <div class="tte">

            章节类别</div>

        <div id="mainBox">

            <div id="content">

                <dl data-type="menu">

                    <dt>第一单元科学是系统化了的知识</dt>

                    <dd>

                        1、千篇一律与千变万化</dd>

                    <dd>

                        2、双语言时代</dd>

                    <dd>

                        3、人们如何做出决策</dd>

                    <dd>

                        4、培养独立工作和独立思考的人</dd>

                </dl>

                <dl data-type="menu">

                    <dt>第二单元科学是系统化了的知识</dt>

                    <dd>

                        1、千篇一律与千变万化</dd>

                    <dd>

                        2、双语言时代</dd>

                    <dd>

                        3、人们如何做出决策</dd>

                    <dd>

                        4、培养独立工作和独立思考的人</dd>

                </dl>

                <dl data-type="menu">

                    <dt>第三单元科学是系统化了的知识</dt>

                    <dd>

                        1、千篇一律与千变万化</dd>

                    <dd>

                        2、双语言时代</dd>

                    <dd>

                        3、人们如何做出决策</dd>

                    <dd>

                        4、培养独立工作和独立思考的人</dd>

                </dl>

                <dl data-type="menu">

                    <dt>第四单元科学是系统化了的知识</dt>

                    <dd>

                        1、千篇一律与千变万化</dd>

                    <dd>

                        2、双语言时代</dd>

                    <dd>

                        3、人们如何做出决策</dd>

                    <dd>

                        4、培养独立工作和独立思考的人</dd>

                </dl>

                <dl data-type="menu">

                    <dt>第五单元科学是系统化了的知识</dt>

                    <dd>

                        1、千篇一律与千变万化</dd>

                    <dd>

                        2、双语言时代</dd>

                    <dd>

                        3、人们如何做出决策</dd>

                    <dd>

                        4、培养独立工作和独立思考的人</dd>

                </dl>

            </div>

        </div>

    </div>

    <!-- /章节类别 -->

    <script type="text/javascript">

        var doc = document;

        var _wheelData = -1;

        var mainBox = doc.getElementById('mainBox');

        function bind(obj, type, handler) {

            var node = typeof obj == "string" ? $(obj) : obj;

            if (node.addEventListener) {

                node.addEventListener(type, handler, false);

            } else if (node.attachEvent) {

                node.attachEvent('on' + type, handler);

            } else {

                node['on' + type] = handler;

            }

        }

        function mouseWheel(obj, handler) {

            var node = typeof obj == "string" ? $(obj) : obj;

            bind(node, 'mousewheel'function (event) {

                var data = -getWheelData(event);

                handler(data);

                if (document.all) {

                    window.event.returnValue = false;

                } else {

                    event.preventDefault();

                }

 

            });

            //火狐

            bind(node, 'DOMMouseScroll'function (event) {

                var data = getWheelData(event);

                handler(data);

                event.preventDefault();

            });

            function getWheelData(event) {

                var e = event || window.event;

                return e.wheelDelta ? e.wheelDelta : e.detail * 40;

            }

        }

 

        function addScroll() {

            this.init.apply(this, arguments);

        }

        addScroll.prototype = {

            init: function (mainBox, contentBox, className) {

                var mainBox = doc.getElementById(mainBox);

                var contentBox = doc.getElementById(contentBox);

                var scrollDiv = this._createScroll(mainBox, className);

                this._resizeScorll(scrollDiv, mainBox, contentBox);

                this._tragScroll(scrollDiv, mainBox, contentBox);

                this._wheelChange(scrollDiv, mainBox, contentBox);

                this._clickScroll(scrollDiv, mainBox, contentBox);

            },

            //创建滚动条

            _createScroll: function (mainBox, className) {

                var _scrollBox = doc.createElement('div');

                _scrollBox.setAttribute("id""scrollBox");

                var _scroll = doc.createElement('div');

                var span = doc.createElement('span');

                _scrollBox.appendChild(_scroll);

                _scroll.appendChild(span);

                _scroll.className = className;

                mainBox.appendChild(_scrollBox);

                return _scroll;

            },

            //调整滚动条

            _resizeScorll: function (element, mainBox, contentBox) {

                var p = element.parentNode;

                var conHeight = contentBox.offsetHeight;

                var _width = mainBox.clientWidth;

                var _height = mainBox.clientHeight;

                var _scrollWidth = element.offsetWidth;

                var _left = _width - _scrollWidth;

                p.style.width = _scrollWidth + "px";

                p.style.height = _height + "px";

                p.style.left = _left + "px";

                p.style.position = "absolute";

                p.style.background = "#ccc";

                contentBox.style.width = (mainBox.offsetWidth - _scrollWidth) + "px";

                var _scrollHeight = parseInt(_height * (_height / conHeight));

                if (_scrollHeight >= mainBox.clientHeight) {

                    element.parentNode.style.display = "none";

                }

                element.style.height = _scrollHeight + "px";

            },

            //拖动滚动条

            _tragScroll: function (element, mainBox, contentBox) {

                var mainHeight = mainBox.clientHeight;

                element.onmousedown = function (event) {

                    var _this = this;

                    var _scrollTop = element.offsetTop;

                    var e = event || window.event;

                    var top = e.clientY;

                    //this.onmousemove=scrollGo;

                    document.onmousemove = scrollGo;

                    document.onmouseup = function (event) {

                        this.onmousemove = null;

                    }

                    function scrollGo(event) {

                        var e = event || window.event;

                        var _top = e.clientY;

                        var _t = _top - top + _scrollTop;

                        if (_t > (mainHeight - element.offsetHeight)) {

                            _t = mainHeight - element.offsetHeight;

                        }

                        if (_t <= 0) {

                            _t = 0;

                        }

                        element.style.top = _t + "px";

                        contentBox.style.top = -_t * (contentBox.offsetHeight / mainBox.offsetHeight) + "px";

                        _wheelData = _t;

                    }

                }

                element.onmouseover = function () {

                    this.style.background = "#444";

                }

                element.onmouseout = function () {

                    this.style.background = "#666";

                }

            },

            //鼠标滚轮滚动,滚动条滚动

            _wheelChange: function (element, mainBox, contentBox) {

                var node = typeof mainBox == "string" ? $(mainBox) : mainBox;

                var flag = 0, rate = 0, wheelFlag = 0;

                if (node) {

                    mouseWheel(node, function (data) {

                        wheelFlag += data;

                        if (_wheelData >= 0) {

                            flag = _wheelData;

                            element.style.top = flag + "px";

                            wheelFlag = _wheelData * 12;

                            _wheelData = -1;

                        } else {

                            flag = wheelFlag / 12;

                        }

                        if (flag <= 0) {

                            flag = 0;

                            wheelFlag = 0;

                        }

                        if (flag >= (mainBox.offsetHeight - element.offsetHeight)) {

                            flag = (mainBox.clientHeight - element.offsetHeight);

                            wheelFlag = (mainBox.clientHeight - element.offsetHeight) * 12;

 

                        }

                        element.style.top = flag + "px";

                        contentBox.style.top = -flag * (contentBox.offsetHeight / mainBox.offsetHeight) + "px";

                    });

                }

            },

            _clickScroll: function (element, mainBox, contentBox) {

                var p = element.parentNode;

                p.onclick = function (event) {

                    var e = event || window.event;

                    var t = e.target || e.srcElement;

                    var sTop = document.documentElement.scrollTop > 0 ? document.documentElement.scrollTop : document.body.scrollTop;

                    var top = mainBox.offsetTop;

                    var _top = e.clientY + sTop - top - element.offsetHeight / 2;

                    if (_top <= 0) {

                        _top = 0;

                    }

                    if (_top >= (mainBox.clientHeight - element.offsetHeight)) {

                        _top = mainBox.clientHeight - element.offsetHeight;

                    }

                    if (t != element) {

                        element.style.top = _top + "px";

                        contentBox.style.top = -_top * (contentBox.offsetHeight / mainBox.offsetHeight) + "px";

                        _wheelData = _top;

                    }

                }

            }

        }

        new addScroll('mainBox''content''scrollDiv');

        $(function () {

            $("#scrollBox").hide();

 

            $("#mainBox").mouseover(function () {

 

 

                $("#scrollBox").show();

 

 

            }).mouseout(function () {

 

                $("#scrollBox").hide();

 

            });

 

        });

  

    </script>

</body>

</html>

你可能感兴趣的:(div)