zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    跳台阶问题
    腾讯,百度,网易游戏,华为笔面经验
    进程、线程、应用程序之间的关系
    const用法小结
    vc快捷键
    文献阅读以及如何管理
    数据类型转换
    vc Debug Release
    如何阅读文献
    如何提高表达能力
  • 原文地址:https://www.cnblogs.com/riasky/p/3371951.html
Copyright © 2011-2022 走看看