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 asp.net 用json格式返回自定义对象
Apr 07 Javascript
ASP 过滤数组重复数据函数(加强版)
May 31 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
轻量级的原生js日历插件calendar.js使用指南
Apr 28 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
浅析Bootstrap组件之面板组件
May 04 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
Jul 04 Javascript
jQuery zTree树插件动态加载实例代码
May 11 jQuery
vue axios请求拦截实例代码
Mar 29 Javascript
javascript自定义加载loading效果
Sep 15 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
JavaScript实现点击切换功能
Jan 27 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
文件系统基本操作类
2006/11/23 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
js禁止表单重复提交
2017/08/29 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
在pycharm下设置自己的个性模版方法
2019/07/15 Python
python实发邮件实例详解
2019/11/11 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
农田水利实习自我鉴定
2013/09/19 职场文书
财务科科长岗位职责
2014/03/10 职场文书
初三语文教学计划
2015/01/22 职场文书
主持人开幕词
2015/01/29 职场文书
入党后的感想
2015/08/10 职场文书
2016年教师师德师风承诺书
2016/03/25 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
CSS的calc函数用法小结
2022/06/25 HTML / CSS