<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>自定义滚动条</title>
<style type="text/css">
#div1 {
    width: 20px;
    height: 400px;
    position: relative;
    background: black;
    margin: 5px auto;
    left: 200px;
}

#div2 {
    width: 20px;
    height: 20px;
    position: absolute;
    background: green;
}

#div3 {
    width: 300px;
    height: 300px;
    position: relative;
    overflow: hidden;
    top: -320px;
    border: 1px solid black;
    background-color:green;
}

#div4 {
    position: absolute;
    left: 0;
    top: -20px;
    padding: 4px;
}
</style>
<script type="text/javascript">
    window.onload = function() {
        var oDiv = document.getElementById('div1');
        var oDiv2 = document.getElementById('div2');
        var oDiv3 = document.getElementById('div3');
        var oDiv4 = document.getElementById('div4');
        var disY = 0;
        oDiv.onmousedown = function(ev) {
            var oEvent = ev || event;
            //Div距离 ClientX-Left
            disY = oEvent.clientY - oDiv2.offsetTop;
            if (oDiv2.setCapture) {
                //IE
                oDiv2.onmousemove = function(ev) {
                    var oEvent = ev || event;
                    var y = oEvent.clientY - disY;
                    //下拉
                    var scale = y / (oDiv.offsetHeight - oDiv2.offsetHeight);
                    //        document.title =scale;
                    //磁铁吸附
                    if (scale < 0) {
                        scale = 0;
                    } else if (scale > 1) {
                        scale = 1;
                    }
                    if (y < 0) {
                        y = 0;
                    } else if (y > oDiv.offsetHeight - oDiv2.offsetHeight) {
                        y = oDiv.offsetHeight - oDiv2.offsetHeight;
                    }
                    oDiv2.style.top = y + 'px';
                    oDiv4.style.top = -(oDiv4.offsetHeight - oDiv3.offsetHeight)
                            * scale + 'px';

                };
                oDiv2.onmouseup = function() {
                    oDiv2.onmousemove = null;
                    oDiv2.onmouseup = null;

                    oDiv2.releaseCapture();
                };

                oDiv2.setCapture();
            } else {
                //Chrome FF
                oDiv2.onmousemove = function(ev) {
                    var oEvent = ev || event;
                    var y = oEvent.clientY - disY;
                    if (y < 0) {
                        y = 0;
                    } else if (y > Div2.offsetHeight - oDiv.offsetHeight) {
                        y = Div2.offsetHeight - oDiv.offsetHeight;
                    }
                    oDiv2.style.top = y + 'px';
                };
                document.onmouseup = function() {
                    document.onmousemove = null;
                    document.onmouseup = null;

                };

            }
            //阻止浏览器的默认拖拽
            return false;
        };

    };
</script>
</head>
<body>
    <div id="div1" title="我是素材">
        <div id="div2" title="我是下拉线"></div>
    </div>
    <div id="div3" title="我是下拉框">
        <div id="div4">来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
            Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。

            报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
            Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。

            报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
            Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。

            报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。来自意大利时尚之都米兰的地标建筑“垂直森林”来到了中国。据美媒boredpanda2月6日报道,“垂直森林之父”为斯特凡诺·博埃里(Stefano
            Boeri),而南京“垂直森林”项目为亚洲首座博埃里设计在建的“垂直森林”建筑。

            报道称,此项建筑将由656英尺(约200米)及354英尺(约108米)的双塔楼组成,外围覆盖至少1000棵树以及约2500棵灌木类植物。“垂直森林”每天可以消化二氧化碳,并释放132磅(约60千克)的氧气。
        </div>
    </div>
</body>
</html>

自定义滚动条Js简版的更多相关文章

  1. js简版定时器

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. js 简版双色球 取号

    <style type="text/css"> span{ display: block; float: left; width: 50px; height: 50px ...

  3. 基于React.js网页版弹窗|react pc端自定义对话框组件RLayer

    基于React.js实现PC桌面端自定义弹窗组件RLayer. 前几天有分享一个Vue网页版弹框组件,今天分享一个最新开发的React PC桌面端自定义对话框组件. RLayer 一款基于react. ...

  4. 利用JS实现自定义滚动条

    一般默认的滚动条会比较丑,我们可以用简单的js实现自定义滚动条的功能: 代码如下: <!doctype html> <html> <head> <meta c ...

  5. js消除小游戏(极简版)

    js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...

  6. js自定义滚动条

    今天听到别人说自定义滚动条,所以就在吃饭的时间写了个 html部分 <div class="out" id="out"> <div class ...

  7. css和js实现硬件加速渲染自定义滚动条

    听别人说用CSS的变换来实现渲染有硬件加速的效果,看到很多大网站都开始陆续使用上了,我也来说说怎么做,我这边实现的滚动条有自然滚动效果,看起来比较自然,说的再多不如直接写,让我们开始吧! 我们需要自己 ...

  8. Vue.js 桌面端自定义滚动条组件|vue美化滚动条VScroll

    基于vue.js开发的小巧PC端自定义滚动条组件VScroll. 前段时间有给大家分享一个vue桌面端弹框组件,今天再分享最近开发的一个vue pc端自定义滚动条组件. vscroll 一款基于vue ...

  9. 自定义滚动条 - mCustomScrollbar

    项目中需要使用自定义滚动条,但是试用了很多都功能不够全,今天发现一个比较全而且用法很简单的 -- mCustomScrollbar http://manos.malihu.gr/jquery-cust ...

随机推荐

  1. Linux建立信任主机

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.先在本机上面装一个sshpass 的安装包 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2.ssh-ke ...

  2. [转]ASP.NET Core 1 Deploy to IIS

    本文转自: http://webmodelling.com/webbits/aspnet/aspnet-deploy-iis.aspx 15 Sep 2016. This tutorial will ...

  3. java类固定值代替基表写法

    package cn.com.mcd.enumeration; public enum AuditStatusEnum { NOTAUDIT("0", "未审核" ...

  4. pyhton字符编码问题--decode和encode方法

    1  decode和encode方法 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成uni ...

  5. STM32实现HID和u盘复合设备

      USB设备可以定义一个复合设备,复合设备分两种,一种是一个设备多个配置,还有一种是一个配置多个接口,在本例中采用一个配置多个接口的方式 首先修改设备描述符,标准设备描述符和报告描述符都不需要修改, ...

  6. ASIHTTPRequest异步请求

    我们运行程序,如果网速很慢,查询的时候会一直黑屏,直到请求结束画面才出现,这样用户体验很不好.因此同步请求一般只是在某个子线 程中使用,而不在主线程中使用.异步请求的用户体验要比同步请求好,因此一般情 ...

  7. CSS判断不同分辨率显示不同宽度布局CSS3技术支持IE6到IE8

    CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8.将用到css3 @media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给大家介绍通过JS ...

  8. webstrom 编码

    设置文件保存格式: webstrom的右下角选择你需要的编码

  9. 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载)

    原文:http://www.open-open.com/lib/view/open1435468300700.html 第一步,确定目标: Tracker  192.168.224.20:22122 ...

  10. nginx 判断访问文件或目录不存在rewrite

    文件及目录匹配,其中:* -f和!-f用来判断是否存在文件* -d和!-d用来判断是否存在目录* -e和!-e用来判断是否存在文件或目录* -x和!-x用来判断文件是否可执行样例 : 判断访问的图片是 ...