zoukankan      html  css  js  c++  java
  • JQ_简单版滚动条

    /*css*/

    .Box{position:relative;}
    .contentBox{400px;height:240px;background:#EEE;position:relative;overflow:hidden;}
    .content{position:absolute;400px;top:0;left:0;line-height:25px;color:#666;}
    .scrollBox{position:absolute;5px;height:200px;top:0;left:410px;background:#EEE}
    .scroll{position:absolute;5px;height:20px;top:0;left:0;background:#666;cursor:default;}

    /*html*/

    <div class="Box">
     <div class="contentBox">
      <div class="content" id="content">
       STAR<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       END
      </div>
     </div>
     <div class="scrollBox">
      <div class="scroll" id="scroll"></div>
     </div>
    </div>

    /*JQ*/

    var scrollMyao = function(a,b){
        var $scroll = $(a);
        var $content = $(b);
        var d = $scroll.parent().height() - $scroll.height();
        var $contentHA = $content.height() - $content.parent().height();
        if($contentHA <= 0){
                $scroll.parent().hide();
                }
        $scroll.mousedown(function(e){
            var mouseY = e.pageY;
            var $scrollP = $scroll.position().top;
            $(document).bind("mousemove",function(e){
                var mouseYnow = e.pageY;
                var mValue = mouseYnow - mouseY + $scrollP;
                var per = mValue / d;
                var $contentH = -$contentHA*per;
                if(mValue >= 0 && mValue <=d){
                    $scroll.css("top",mValue+"px");
                    $content.css("top",$contentH+"px");
                    }
                if(mValue <= 0){
                    $scroll.css("top","0");
                    $content.css("top","0");
                    }
                if(mValue >= d){
                    $scroll.css("top",d+"px");
                    $content.css("top",-$contentHA+"px");
                    }
            })

        e.preventDefault();
                    document.onselectstart=function(){return false}
        })
        $(document).mouseup(function(){
           $(document).unbind("mousemove");
           document.onselectstart=function(){return true}
        })
        }
    scrollMyao("#scroll","#content");

    //传的值,

    第一个是滚动条ID,

    第二个是主体内容的ID.

     

    /*第二版,拥有上下箭头,可以用滚轮*/

    /*css*/

    .site{960px;margin:0 auto;padding-top:50px;}
    .Box{position:relative;}
    .contentBox{400px;height:200px;background:#EEE;position:relative;overflow:hidden;}
    .content{position:absolute;400px;top:0;left:0;line-height:25px;color:#666;}
    .scrollBox{position:absolute;10px;height:180px;top:10px;left:410px;background:#EEE}
    .scroll{position:absolute;10px;height:20px;top:0;left:0;background:#666;cursor:default;}
    .scroll_top{position:absolute;top:-10px;left:0;10px;height:10px;background:#555;overflow:hidden;}
    .scroll_bot{position:absolute;bottom:-10px;left:0;10px;height:10px;background:#555;overflow:hidden;}
    .on{background:#F00}

    /*html*/

    <div class="Box">
     <div class="contentBox">
      <div class="content" id="content">
       STAR<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       <img src="../images/i06.jpg" height="200" /><br />
       <img src="../images/i06.jpg" height="200" /><br />
       <img src="../images/i06.jpg" height="200" /><br />
       <img src="../images/i06.jpg" height="200" /><br />
       hello world<br />
       hello world<br />
       hello world<br />
       hello world<br />
       END
      </div>
     </div>
     <div class="scrollBox">
      <div class="scroll_top" id="scroll_top"></div>
      <div class="scroll_bot" id="scroll_bot"></div>
      <div class="scroll" id="scroll"></div>
     </div>
    </div>

    /*jq*/

    var yAoscroll = function(a, b, c, d) {
        var $scroll = $(a);
        var $content = $(b);
        var $scrBot = $(c);
        var $scrTop = $(d);
        var $scrollH = $scroll.parent().height() - $scroll.height();
        var $contentHA = $content.height() - $content.parent().height();
        var $per = $contentHA / $scrollH;
        var timeDo = null;
        var timeDo1 = null;
        var timeTo = null;
        var timeTo1 = null;
        if ($contentHA <= 0) return;
        /*滚动条*/
        $scroll.mousedown(function(e) {
            var mouseY = e.pageY;
            var $scrollP = $scroll.position().top;
            $(document).bind("mousemove",
            function(e) {
                var mouseYnow = e.pageY;
                var mValue = mouseYnow - mouseY + $scrollP;
                var $contentH = -mValue * $per;
                if (mValue >= 0 && mValue <= $scrollH) {
                    $scroll.css("top", mValue + "px");
                    $content.css("top", $contentH + "px");
                }
                if (mValue <= 0) {
                    $scroll.css("top", "0");
                    $content.css("top", "0");
                }
                if (mValue >= $scrollH) {
                    $scroll.css("top", $scrollH + "px");
                    $content.css("top", -$contentHA + "px");
                }
            })
             e.preventDefault();
            document.onselectstart = function() {
                return false
            }
        })
         $(document).mouseup(function() {
            $(document).unbind("mousemove");
            document.onselectstart = function() {
                return true
            }
        })
        /*按钮*/
         $scrBot.mousedown(function() {
            $(this).addClass("on")
            var $scrollP = $scroll.position().top;
            var $contenp = $content.position().top;
            scrXia($scrollP);
            conSha($contenp);
        })
         $scrBot.mouseup(function() {
            $(this).removeClass("on");
            clearTimeout(timeDo);
            clearTimeout(timeDo1)
        })
         $scrTop.mousedown(function() {
            $(this).addClass("on")
            var $scrollP = $scroll.position().top;
            var $contenp = $content.position().top;
            scrSha($scrollP);
            conXia($contenp);
        })
         $scrTop.mouseup(function() {
            $(this).removeClass("on");
            clearTimeout(timeTo);
            clearTimeout(timeTo1)
        })
         function scrXia(a) {
            if (a < $scrollH) {
                a++
                $scroll.css("top", a + "px");
                timeDo = setTimeout(function() {
                    scrXia(a);
                },
                10)
            }
        }
        function conSha(a) {
            if (a > -$contentHA) {
                a = a - $per * 1;
                if (a < -$contentHA) a = -$contentHA;
                $content.css("top", a + "px");
                timeDo1 = setTimeout(function() {
                    conSha(a);
                },
                10)
            }
        }
        function scrSha(a) {
            if (a > 0) {
                a--;
                $scroll.css("top", a + "px");
                timeTo = setTimeout(function() {
                    scrSha(a);
                },
                10)
            }
        }
        function conXia(a) {
            if (a < 0) {
                a = a + $per * 1;
                if (a > 0) a = 0;
                $content.css("top", a + "px");
                timeTo1 = setTimeout(function() {
                    conXia(a);
                },
                10)
            }
        }
        /*滚轮*/
        $content.hover(function(){
            if(window.addEventListener){this.addEventListener('DOMMouseScroll', wheel, false)};
            this.onmousewheel = wheel;
            window.onmousewheel = document.onmousewheel = function(){return false;}
            },function(){
            if(window.addEventListener)this.removeEventListener('DOMMouseScroll', wheel, false);
            this.onmousewheel = this.onmousewheel = null;    
            window.onmousewheel = document.onmousewheel = function(){return true;}
            })
        function handle(delta) {
            var i = $content.position().top;
             if (delta < 0)
             {
               i = i-10;
               i2 = i/$per;
               if(i<=-$contentHA){
                   $content.css("top",-$contentHA+"px");
                   $scroll.css("top",$scrollH+"px")
                   i=-$contentHA;
                   }
               else{
                   $content.css("top",i+"px")
                   $scroll.css("top",-i2+"px")
                   }
             }
             else
             {
               i=i+10;
               i2 = i/$per;
               if(i>=0){
                   $content.css("top",0+"px");
                   $scroll.css("top",0+"px")
                   i=0;
                   }
               else{
                    $content.css("top",i+"px")
                       $scroll.css("top",-i2+"px")
                       }
             }
            }
            function wheel(event){
             var delta = 0;
             if(!event)event = window.event;
             if(event.wheelDelta){
              delta = event.wheelDelta/120;
              if(window.opera)delta = -delta;
             }else if(event.detail)delta = -event.detail/3;
             if(delta)handle(delta);
             if(!window.event){
                event.preventDefault();
                 }
            
            }
            
    }
     yAoscroll ("#scroll","#content","#scroll_bot","#scroll_top");

  • 相关阅读:
    问题 E: C#判断回文字符串
    hdu 1130 How Many Trees? 【卡特兰数】
    The writing on the wall
    字典树的应用
    完全背包
    多重背包
    hdu 2191 【背包问题】
    最长上升子序列 and 最长公共子序列 问题模板
    hdu 4704 Sum 【费马小定理】
    费马小定理
  • 原文地址:https://www.cnblogs.com/somesayss/p/2497145.html
Copyright © 2011-2022 走看看