js实现自定义滚动条的示例


Posted in Javascript onOctober 27, 2020

自定义滚动条

目录

  • 代码实例
  • 代码解析
  • 下载源码链接

代码实例

* {
	padding: 0;
	margin: 0;
}
#box1 {
	width: 500px;
	height: 20px;
	background: #999;
	position: relative;
	margin: 20px auto;
}
#box2 {
	width: 20px;
	height: 20px;
	background: green;
	position: absolute;
}
#box3 {
	width: 0;
	height: 0;
	margin: 20px auto;
}
#box3 img {
	width: 100%;
	height: 100%;
}

<div id="box1">
<div id="box2"></div>
</div>
<div id="box3">
	<img src="./1.jpg">
</div>

// 获取dom元素
var oBox1 = document.getElementById('box1');
var oBox2 = document.getElementById('box2');
var oBox3 = document.getElementById('box3');

// 按下滚动条后的操作
oBox2.onmousedown = function(e) {
// 获取事件的必备操作,保证事件被获取
var oEvent = e || event

// 保证只有被按下滚动条后才能执行此函数
document.onmousemove = function(e) {
	var oEvent = e || event
	var l = oEvent.clientX - oBox1.offsetLeft
	// 获取滚动条可活动的宽度范围
	var wid = oBox1.offsetWidth - oBox2.offsetWidth
	if (l < 0) {
		l = 0
	} else if (l > wid) {
		l = wid
	}
	// 位置定位
	oBox2.style.left = l + 'px'

	// 根据滚动条位置获得比例
	var scale = l / wid
	// 图片的宽度和高度
	var w = 3264 * scale
	var h = 4080 * scale
	// oBox3.style.cssText是加在内嵌style中的
	oBox3.style.cssText += 'width:' + w + 'px;height:' + h + 'px;'
}

// 保证鼠标松开后事件不再执行
document.onmouseup = function() {
	document.onmousemove = null
	document.onmousedown = null
}
}

代码解析

elem.style.cssText是加在内嵌style中的

// oBox3.style.cssText是加在内嵌style中的
oBox3.style.cssText += 'width:' + w + 'px;height:' + h + 'px;

下载源码链接

星辉的Github

以上就是js实现自定义滚动条的示例的详细内容,更多关于js实现自定义滚动条的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
js 纯数字不重复排列的另类方法
Jul 17 Javascript
jquery创建一个ajax关键词数据搜索实现思路
Feb 26 Javascript
js怎么终止程序return不行换jfslk
May 30 Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 Javascript
用jquery仿做发微博功能示例
Apr 18 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
Jun 01 Javascript
JavaScript生成二维码图片小结
Dec 27 Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
JS实现从对象获取对象中单个键值的方法示例
Jun 05 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 #Javascript
Element-UI 使用el-row 分栏布局的教程
Oct 26 #Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 #Javascript
js实现简易拖拽的示例
Oct 26 #Javascript
js实现限定范围拖拽的示例
Oct 26 #Javascript
js实现磁性吸附的示例
Oct 26 #Javascript
如何构建一个Vue插件并生成npm包
Oct 26 #Javascript
You might like
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
js中的 || 与 &amp;&amp; 运算符详解
2018/05/24 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
python的id()函数介绍
2013/02/10 Python
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python pymongo模块用法示例
2018/03/31 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Django如何自定义分页
2018/09/25 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
python实现动态数组的示例代码
2019/07/15 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
python zip()函数的使用示例
2020/09/23 Python
Python基于execjs运行js过程解析
2020/11/27 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
护理专业毕业生推荐信
2013/10/31 职场文书
文明生主要事迹
2014/05/25 职场文书
质量负责人任命书
2014/06/06 职场文书
2014年妇联工作总结
2014/11/21 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS