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 相关文章推荐
Code:loadScript( )加载js的功能函数
Feb 02 Javascript
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
Prototype Date对象 学习
Jul 12 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
jquery序列化方法实例分析
Jun 10 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
Jul 29 Javascript
JavaScript统计网站访问次数的实现代码
Nov 18 Javascript
JavaScript构造函数详解
Dec 27 Javascript
Bootstrap模块dropdown实现下拉框响应
May 22 Javascript
jQuery 更改checkbox的状态,无效的解决方法
Jul 22 Javascript
详解jQuery选择器
Dec 21 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
Mar 19 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处理整数函数的详解
2013/06/09 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
javascript delete 使用示例代码
2010/03/29 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
python绘制多个子图的实例
2019/07/07 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
python时间日期操作方法实例小结
2020/02/06 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
工程管理专业毕业生自荐信
2014/01/24 职场文书
双方协议书
2014/04/22 职场文书
计划生育宣传标语
2014/06/21 职场文书
敬老月活动总结
2014/08/28 职场文书
考试保密承诺书
2014/08/30 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
终止劳动合同协议书
2014/10/05 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
员工离职感谢信
2015/01/22 职场文书
一年级语文教学随笔
2015/08/14 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL