jQuery自定义滚动条完整实例


Posted in Javascript onJanuary 08, 2016

本文实例讲述了jQuery自定义滚动条实现方法。分享给大家供大家参考,具体如下:

很多时候,由于美观上的考虑,往往需要自定义各种各样的滚动条,因此,本人做了一个demo

运行效果截图如下:

jQuery自定义滚动条完整实例

以下是代码部分:

<html>
  <head>
    <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
    <script>
    $(function(){
      //内容高度
      var content = $("#div2"); 
      //框的高度
      var box = $("#div1");
      //自定义的滚动条
      var scrollbar = $("#div3");
      var scroll=function(content,box,scrollbar){
        var bigHeight = content.height();
        var smallHeight = box.height();
        var rate = smallHeight/bigHeight;
        var h = Math.floor(rate*smallHeight);
        scrollbar.height(h);
        var offset = box.offset()
        var offsetT = offset.top+1;
        scrollbar.mousedown(function(e){
          var divOffsetT = scrollbar.offset().top;
          var tempT = e.pageY-divOffsetT;
          function move(e){
            var newH = e.pageY-tempT-offsetT;
            if(newH<0){
              newH=0;
            }else if(newH>(smallHeight-h)){
              newH=smallHeight-h;
            }
            var rate2 = (newH+h)/smallHeight;
            var contentH = Math.floor(bigHeight*rate2-smallHeight);
            content.css("top",-contentH+"px");
            scrollbar.css("top",newH+"px");
          }
          $("body").on("mousemove",move);
          $("body").mouseup(function(){
            $("body").off("mousemove",move);
          });
        });
      }
      scroll(content,box,scrollbar);
    });
    </script>
    <style>
      *{ margin:0; padding: 0;}
      body{ font-size: 12px;}
      #div1{ width: 200px; height: 300px; margin: 50px auto; position: relative; _overflow: hidden; border: 1px solid #000;}
      #div2{ width: 180px; position: absolute; top: 0; left: 5px;}
      #div3{ width: 10px; position: absolute; top: 0; right:5px; background: #000;}
    </style>
  </head>
  <body>
    <div id="div1">
      <div id="div3"></div>
      <div id="div2">
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
        1<br>
      </div>
    </div>
    <textarea name="" id="txt" cols="30" rows="10"></textarea>
  </body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
js实现的网页颜色代码表全集
Jul 17 Javascript
验证用户是否修改过页面的数据的实现方法
Sep 26 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
Oct 10 Javascript
jquery实现右键菜单插件
Mar 29 Javascript
javascript中Math.random()使用详解
Apr 15 Javascript
node.js操作mysql(增删改查)
Jul 24 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
Mar 22 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
JS闭包经典实例详解
Dec 20 Javascript
webpack-url-loader 解决项目中图片打包路径问题
Feb 15 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
May 01 Javascript
electron 如何将任意资源打包的方法步骤
Apr 16 Javascript
javascript正则表达式定义(语法)总结
Jan 08 #Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 #Javascript
jQuery实现的鼠标滑过弹出放大图片特效
Jan 08 #Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 #Javascript
javascript中select下拉框的用法总结
Jan 07 #Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 #Javascript
js创建对象的方法汇总
Jan 07 #Javascript
You might like
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
js 数值项目的格式化函数代码
2010/05/14 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[07:38]2014DOTA2国际邀请赛 Newbee顺利挺进胜者组赛后专访
2014/07/15 DOTA
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
python遍历数组的方法小结
2015/04/30 Python
python Django模板的使用方法
2016/01/14 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
python openvc 裁剪、剪切图片 提取图片的行和列
2019/09/19 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
Golang bufio详细讲解
2022/04/21 Golang