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 javaScript捕获回车事件(示例代码)
Nov 07 Javascript
jquery实现可自动判断位置的弹出层效果代码
Oct 12 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
检查表单元素的值是否为空的实例代码
Jun 16 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
node.js利用redis数据库缓存数据的方法
Mar 01 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
Mar 28 Javascript
JavaScript判断输入是否为数字类型的方法总结
Sep 28 Javascript
npm配置国内镜像资源+淘宝镜像的方法
Sep 07 Javascript
微信小程序实现的一键复制功能示例
Apr 24 Javascript
通过扫小程序码实现网站登陆功能
Aug 22 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
Nov 02 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
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
jQuery实现tab标签自动切换的方法
2015/02/28 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
Sanic框架应用部署方法详解
2018/07/18 Python
Python列表与元组的异同详解
2019/07/02 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
Django的性能优化实现解析
2019/07/30 Python
Django实现简单的分页功能
2021/02/22 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
Linux常见面试题
2013/03/18 面试题
大学同学聚会邀请函
2014/01/29 职场文书
森林病虫害防治方案
2014/06/02 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js