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 改变CSS样式基础代码
Feb 11 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
Jul 20 Javascript
jquery easyui滚动条部分设置介绍
Sep 12 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
JQuery中$.each 和$(selector).each()的区别详解
Mar 13 Javascript
js实现背景图自适应窗口大小
Jan 10 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
推荐一个基于Node.js的表单验证库
Feb 15 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
Sep 17 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 Javascript
基于Vue实现微前端的示例代码
Apr 24 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版自动生成文章摘要
2008/07/23 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP实现简单日历类编写
2020/08/28 PHP
奇妙的js
2007/09/24 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
python日志logging模块使用方法分析
2019/05/23 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
迪奥美国官网:Dior美国
2019/12/07 全球购物
Shell编程面试题
2012/05/30 面试题
高中生的自我评价
2014/03/04 职场文书
关于学习的演讲稿
2014/05/10 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
三八妇女节慰问信
2015/02/14 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
小兵张嘎观后感
2015/06/03 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
同学会演讲稿
2019/04/02 职场文书
Python实现抖音热搜定时爬取功能
2022/03/16 Python