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 相关文章推荐
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
JavaScript 闭包在封装函数时的简单分析
Nov 28 Javascript
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
Jan 22 Javascript
JQuery实现用户名无刷新验证的小例子
Mar 22 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
Mar 05 Javascript
JavaScript实现找出数组中最长的连续数字序列
Sep 03 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
Mar 26 Javascript
BootStrap表单宽度设置方法
Mar 10 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
简单实现节流函数和防抖函数过程解析
Oct 08 Javascript
vue如何使用外部特殊字体的操作
Jul 30 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实现rc4加密算法代码
2012/04/25 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
js合并两个数组生成合并后的key:value数组
2018/05/09 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
简单了解python数组的基本操作
2019/11/26 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Python3 元组tuple入门基础
2020/02/09 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
遗嘱格式范本
2015/08/07 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android