`
keimon
  • 浏览: 73159 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

模拟滚动条

阅读更多

 jquery插件:jquery.mousewheel.js

 

 

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript" src="jquery.mousewheel.js"></script>
<style>
            .styledSelect {
                width:410px;
             height:295px;
             margin:0 auto;
             overflow:hidden;
             position:relative;
            }
            .contentBox {
             width:400px;
             line-height:20px;
             font-family:'宋体';
             font-size:12px;
    position:absolute;
    top:0px;
            }
            .contentBox p{
                text-indent: 24px;
                margin:0;
                padding:0;
            }
            .barClass{
                right: 2px;
                width: 2px;
                background:#000;
            }
            .barSpanClass{
                width:6px;
                background: #000;
                right:-2px;
            }
        </style>
    </head>
    <body>
        <div class="styledSelect" id="styledSelect">
            <div class="contentBox" id="contentBox">
                <p> 11有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 22有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 33有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 44有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 55有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 66有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 77有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 88有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 99有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
    <p> 00有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。有限公司全面负责管理运营。
                有限公司全面负责管理运营。有限公司全面负责管理运营。</p>
            </div>
        </div>
  <div id="t"></div>
  
    </body>
<script>
 // 设置元素样式
  function setStyle(elem,prop){
      for(var i in prop){
          elem.style[i] = prop[i];   
      }
  }
//模拟滚动条
function scrollFun(innerDiv){
   var outDiv = innerDiv.get(0).parentNode;
   $(outDiv).attr('position','relative');
   $(innerDiv).attr('position','absolute');

   var barClass =  'barClass';
   var barSpanClass = 'barSpanClass';
   var barHeight = $(outDiv).height();
   var allHeight = innerDiv.height();
   scaleY = allHeight/barHeight;
   barSpanHeight = (barHeight/allHeight)*barHeight;
   scrollHeight = barHeight-barSpanHeight;

   var barBg = document.createElement('div');
   barBgNode = {
           position: 'absolute',
           height: barHeight + 'px',
           top: '0px'
   }
   setStyle(barBg,barBgNode);
   $(barBg).addClass('barClass');
   outDiv.appendChild(barBg);

   var barSpan = document.createElement('div');
   barBgSpan = {
            position: 'absolute',
            height: barSpanHeight + 'px',
            top: '0px',
            cursor: 'pointer'
   }
   setStyle(barSpan, barBgSpan);
   $(barSpan).addClass('barSpanClass');
   barBg.appendChild(barSpan);
  
   var _isClick = false;
   var disY=0;
   $(barSpan).mousedown(function(e){
      _isClick = true;
      var disY = e.clientY-$(barSpan).offset().top;
      $(document).mousemove(function(e){
         if(_isClick==true){
       //鼠标移动时不选中文本;
         if (document.selection && document.selection.empty) {
               document.selection.empty();
            }else if (window.getSelection) {
               var sel = window.getSelection();
               sel.removeAllRanges();
            }
         var barSpanTop = e.clientY-disY;
           $(barSpan).css('top', barSpanTop+'px');
      var barBgTop = barSpanTop*scaleY;
        $(innerDiv).css('top', -barBgTop+'px');
      checkTop()
      return false;
      }
      })
      $(document).mouseup(function(e){
         _isClick = false;
      return false;
      })
   })

   $(document).mouseup(function(e){
      _isClick = false;
   return false;
   })

   innerDiv.mousewheel(function(event, delta){
      var barBgTop = delta*20;
      var barSpanTop = -barBgTop/scaleY;
      $(innerDiv).css('top', parseInt($(innerDiv).css('top'))+barBgTop);
      $(barSpan).css('top', parseInt($(barSpan).css('top'))+barSpanTop);
      checkTop();
   })

   function checkTop(){
      if(parseInt($(barSpan).css('top'))<0){
      $(barSpan).css('top','0px');
     }else if(parseInt($(barSpan).css('top'))>scrollHeight){
      $(barSpan).css('top',scrollHeight+'px');
   }
   if(parseInt($(innerDiv).css('top'))>0){
      $(innerDiv).css('top','0px');
   }else if(parseInt($(innerDiv).css('top'))<(barHeight-allHeight)){
      $(innerDiv).css('top',(barHeight-allHeight)+'px');
   }
   }
}

var innerDiv = $('#contentBox');
scrollFun(innerDiv);
</script>
</html>

  • 大小: 9.5 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics