自定义滚动条Js简版
<!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简版的更多相关文章
- js简版定时器
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- js 简版双色球 取号
<style type="text/css"> span{ display: block; float: left; width: 50px; height: 50px ...
- 基于React.js网页版弹窗|react pc端自定义对话框组件RLayer
基于React.js实现PC桌面端自定义弹窗组件RLayer. 前几天有分享一个Vue网页版弹框组件,今天分享一个最新开发的React PC桌面端自定义对话框组件. RLayer 一款基于react. ...
- 利用JS实现自定义滚动条
一般默认的滚动条会比较丑,我们可以用简单的js实现自定义滚动条的功能: 代码如下: <!doctype html> <html> <head> <meta c ...
- js消除小游戏(极简版)
js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...
- js自定义滚动条
今天听到别人说自定义滚动条,所以就在吃饭的时间写了个 html部分 <div class="out" id="out"> <div class ...
- css和js实现硬件加速渲染自定义滚动条
听别人说用CSS的变换来实现渲染有硬件加速的效果,看到很多大网站都开始陆续使用上了,我也来说说怎么做,我这边实现的滚动条有自然滚动效果,看起来比较自然,说的再多不如直接写,让我们开始吧! 我们需要自己 ...
- Vue.js 桌面端自定义滚动条组件|vue美化滚动条VScroll
基于vue.js开发的小巧PC端自定义滚动条组件VScroll. 前段时间有给大家分享一个vue桌面端弹框组件,今天再分享最近开发的一个vue pc端自定义滚动条组件. vscroll 一款基于vue ...
- 自定义滚动条 - mCustomScrollbar
项目中需要使用自定义滚动条,但是试用了很多都功能不够全,今天发现一个比较全而且用法很简单的 -- mCustomScrollbar http://manos.malihu.gr/jquery-cust ...
随机推荐
- cakephp 2.0 源码解读(一)
lib - Cake -basic.php -bootstrap.php -Cache -Config -Configure -Controller -Core -Error -Event -I18n ...
- JAVA基础--事务处理
事务处理: 1. 取消掉自动提交 set autocommmit=0 2. 开始事务 bigin 3. 进行一系列操作 update 4. 如果操作全部合格, 提交事务 commit 5. 如果发 ...
- Delphi 中Format的字符串格式化使用说明(转)
源:Delphi 中Format的字符串格式化使用说明(转) 一.Format函数的用法 Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供 ...
- A股暴跌三日市值蒸发4.2万亿 股民人均浮亏超2万
A股暴跌三日市值蒸发4.2万亿 股民人均浮亏超2万 http://finance.qq.com/a/20150508/010324.htm?pgv_ref=aio2015&ptlang=205 ...
- ubuntu14.04安装配置jdk1.8.0_25
Reference: http://jingyan.baidu.com/article/eb9f7b6d8f82a6869364e8a7.html 今天尝试在ubuntu14.04 LTS上安装jdk ...
- DataTable distinct 去重复
有时我们需要从DataTable中抽取Distinct数据,以前总是以对DataTable进行foreach之类纯手工方式获取. 近来发现DataView可以帮我们直接获取Distinct数据,汗一个 ...
- Visual Studio 2012 开发环境配置+控制台工具+桌面应用程序
一.界面布局视图设置 1.窗口的布局.控制台窗口运行恢复到开发环境的设置方法 也可以保存好设好的个性化设置,导入设置: 2.视图|服务器资源管理器(sever explorer) 可以访问数据源.服务 ...
- UVa 10033 - Interpreter
题目大意:模拟题,有一些寄存器和随机访问内存,给你一些指令以及它们代表的操作,模拟操作即可. #include <cstdio> #include <cstring> #def ...
- loading.io一个可以直接生成loading gif图标的站点
官网是:http://loading.io/ 进去后,可以拖动左图大小,然后点右边的make gif就可以自动生成所选大小的gif图标了,生成后会弹出一个download窗,点download下载即可 ...
- DEV控件的Gridview1
DEV控件的Gridview小技巧总结 1.设置Gridview控件的某列不可编辑 this.gridData.gridView1.Columns["change_date"].O ...