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 相关文章推荐
表单的一些基本用法与技巧
Jul 15 Javascript
实用javaScript技术-屏蔽类
Aug 15 Javascript
js 刷新页面的代码小结 推荐
Apr 02 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
Dec 23 Javascript
微信小程序之MaterialDesign--input组件详解
Feb 15 Javascript
js实现下一页页码效果
Mar 07 Javascript
JavaScript实现获取远程的html到当前页面中
Mar 26 Javascript
为你的微信小程序体积瘦身详解
May 20 Javascript
详解JavaScript的BUG和错误
May 07 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
js简单实现自动生成表格功能示例
Jun 02 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
8个出色的WordPress SEO插件收集
2011/02/26 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
python django 增删改查操作 数据库Mysql
2017/07/27 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
python使用Matplotlib画饼图
2018/09/25 Python
python conda操作方法
2019/09/11 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
爱护公物标语
2014/06/24 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis
Oracle中日期的使用方法实例
2022/07/07 Oracle