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来解决ajax读取页面乱码
Nov 28 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
jQuery实现下拉框左右选择的简单实例
Feb 22 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
高性能JavaScript DOM编程(1)
Aug 11 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
Aug 26 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
Nov 29 Javascript
Bootstrap table使用方法总结
May 10 Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 Javascript
layui radio性别单选框赋值方法
Aug 15 Javascript
微信小程序实现渐入渐出动画效果
Jun 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
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
Python中input和raw_input的一点区别
2014/10/21 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
烈士陵园观后感
2015/06/08 职场文书
2015入党个人自传范文
2015/06/26 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python
基于Python实现射击小游戏的制作
2022/04/06 Python