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实现的map方法示例代码
Jan 13 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
七个很有意思的PHP函数
May 12 Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
Oct 09 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
详解AngularJS中自定义过滤器
Dec 28 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
Oct 25 Javascript
微信小程序滑动选择器的实现代码
Aug 10 Javascript
javascript删除数组元素的七个方法示例
Sep 09 Javascript
JavaScript回调函数callback用法解析
Jan 14 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 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
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
php基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
php取出数组单个值的方法
2018/03/12 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
webpack打包单页面如何引用的js
2017/06/07 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
师范生自我鉴定范文
2013/10/05 职场文书
办理信用卡工作证明
2014/01/11 职场文书
年度考核自我评价
2014/01/25 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
小区推广策划方案
2014/06/06 职场文书
聘用意向书
2014/07/29 职场文书
质检员岗位职责范本
2015/04/07 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
Redis分布式锁Redlock的实现
2021/08/07 Redis