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 相关文章推荐
javascript的事件描述
Sep 08 Javascript
用 JSON 处理缓存
Apr 27 Javascript
js添加select下默认的option的value和text的方法
Oct 19 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
Aug 05 Javascript
jquery自定义表格样式
Nov 23 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
Dec 08 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
javascript九宫格图片随机打乱位置的实现方法
Mar 15 Javascript
详解vuejs几种不同组件(页面)间传值的方式
Jun 01 Javascript
微信小程序删除处理详解
Aug 16 Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 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开发文件系统实例讲解
2006/10/09 PHP
基于文本的访客签到簿
2006/10/09 PHP
php中动态调用函数的方法
2015/03/16 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python表格存取的方法
2018/03/07 Python
对python中Json与object转化的方法详解
2018/12/31 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
Python xlwt模块使用代码实例
2020/06/10 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
介绍一下Java的事务处理
2012/12/07 面试题
Jdbc数据访问技术面试题
2012/03/30 面试题
英文自荐信
2013/12/15 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
2015年组织部工作总结
2015/04/03 职场文书
初中化学教学反思
2016/02/22 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript