• 纯JS自定义网页滚动条


    前言
    由于最近在公司很忙,没什么时间更新,忙中抽时间做了一个JS滚动条,因为火狐浏览器与谷歌浏览器的滚动条自定义样式过于麻烦,所以我打算自己写个方便改样式的滚动条

    CSS

    <style>
    			#CheShi {
    				background: #ccc;
    				 80%;
    				height: 200px;
    				overflow: hidden;
    				position: relative;
    				/* 禁止选择文字 */
    				moz-user-select: -moz-none;
    				-moz-user-select: none;
    				-o-user-select: none;
    				-khtml-user-select: none;
    				-webkit-user-select: none;
    				-ms-user-select: none;
    				user-select: none;
    			}
    
    			#CheShi_ul {
    				margin: 0px;
    				padding: 0px;
    				position: absolute;
    				top: 0px;
    				left: 0px;
    			}
    		</style>
    

    HTML

    <div id="CheShi">
    			<ul id="CheShi_ul">
    				<li>测试(Start)</li>
    				<li>测试1</li>
    				<li>测试2</li>
    				<li>测试3</li>
    				<li>测试4</li>
    				<li>测试5</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试</li>
    				<li>测试(END)</li>
    			</ul>
    		</div>
    

    JS

    <script>
    			//生成滚动条
    			document.querySelectorAll("#CheShi")[0].innerHTML +=
    				'<div id="Y_CustomScrollBar" style="height:100%;30px;position: absolute;right: 0px;top:0px;background:#666"><span style="80%;height: 50px;background:#999;display: block;border-radius: 10px;transform: translateX(-50%);position: absolute;left: 50%;top: 0px;"></span></div>';
    			var CheShi = document.querySelectorAll("#CheShi")[0];
    			var CheShiU = document.querySelectorAll("#CheShi #CheShi_ul")[0];
    			var Y_CustomScrollBar_span = document.querySelectorAll("#Y_CustomScrollBar span")[0];
    			var CheShiH = CheShi.offsetHeight; //200
    			var CheShiUH = CheShiU.offsetHeight; //441
    			var XJValue = CheShiUH - CheShiH; //241
    			var XJValue2 = CheShiH - XJValue; //-41
    			var ExtraHeight = 0;
    			var DownY = 0;
    			var DownB = false;
    			//设置滚动条的高度
    
    			if (XJValue2 > 50 && XJValue2 < CheShiH) {
    				Y_CustomScrollBar_span.style.height = XJValue2 + "px";
    			} else if (XJValue2 < 50) {
    				ExtraHeight = XJValue2 - 50;
    				Y_CustomScrollBar_span.style.height = 50 + "px";
    			} else {
    				document.querySelectorAll("#Y_CustomScrollBar")[0].style.display = "none"
    			}
    			//计算鼠标偏移
    			Y_CustomScrollBar_span.onmousedown = function(e1) {
    				DownY = e1.offsetY;
    				DownB = true;
    			}
    			Y_CustomScrollBar_span.onmouseup = function(e1) {
    				DownB = false;
    			}
    
    			Y_CustomScrollBar_span.onmousemove = function(e2) {
    				if (DownB == true) {
    					//滚动条
    					if (((e2.clientY - DownY)) >= 0 && ((e2.clientY - DownY)) <= CheShiH - parseInt(Y_CustomScrollBar_span.style.height)) {
    						Y_CustomScrollBar_span.style.top = "" + (e2.clientY - DownY) + "px";
    					}
    					//滚动内容
    					CheShi_ul.style.top = -(parseInt(Y_CustomScrollBar_span.style.top) * ((CheShiUH - CheShiH) / (CheShiH - parseInt(Y_CustomScrollBar_span.style.height))))  + "px"
    				}
    			}
    		</script>
    

    效果
    在这里插入图片描述
    在这里插入图片描述

    后言
    本文结束了,如果觉得本技术文章对你有帮助请给我点个赞,如果有什么不足的地方,给我提意见,让我加以改进

  • 相关阅读:
    计算机服务器分类
    二进制和十进制转换
    计算机发展历史
    Linux运维学习第二周记
    Linux运维学习第一周记
    使用正则表达式替换文件内容 分类: python 小练习 2013-08-13 15:07 332人阅读 评论(0) 收藏
    Python 中的 socket 编程 分类: socket 2013-08-10 17:17 377人阅读 评论(0) 收藏
    python简单的socket 服务器和客户端 分类: socket 2013-08-10 16:44 455人阅读 评论(0) 收藏
    Python Socket API 笔记 分类: socket 2013-08-10 15:06 2320人阅读 评论(0) 收藏
    vim 7的 无限回退功能 分类: ubuntu 2013-08-09 14:04 672人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/LRolinx/p/13850359.html
Copyright © 2020-2023  润新知