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 相关文章推荐
基于jQuery实现多层次的手风琴效果附源码
Sep 21 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
AngularJS使用ng-repeat指令实现下拉框
Aug 23 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
Oct 10 Javascript
AngulerJS学习之按需动态加载文件
Feb 13 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
让你5分钟掌握9个JavaScript小技巧
Jun 09 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
Aug 06 Javascript
微信小程序自定义tabBar在uni-app的适配详解
Sep 30 Javascript
js对象简介与基本用法示例
Mar 13 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中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
2020/01/06 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
中专毕业生自我鉴定
2014/02/02 职场文书
优秀教师工作感言
2014/02/16 职场文书
社区工作者演讲稿
2014/05/23 职场文书
加强干部作风建设整改方案
2014/10/24 职场文书
教师教育教学随笔
2015/08/15 职场文书
初中地理教学反思
2016/02/19 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
MySQL事务的隔离级别详情
2022/07/15 MySQL