js实现简易垂直滚动条


Posted in Javascript onFebruary 22, 2017

效果图:

js实现简易垂直滚动条

代码如下:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>垂直滚动条</title>
 <style type="text/css">
  .con {
  width: 350px;
  height: 600px;
  border: 1px solid saddlebrown;
  position: relative;
  overflow: hidden;
  }
  .txtBox{
  position: absolute;
  padding-left: 8px;
  padding-right: 36px;
  left: 0px;
  top: 0;
  }
  .bar {
  width: 26px;
  height: 100%;
  background: gainsboro;
  position: absolute;
  top: 0;
  right: 0;
  }
  .drdap {
  width: 100%;
  height: 100px;
  background: steelblue;
  border-radius: 10px;
  position: absolute;
  cursor: pointer;
  left: 0;
  top: 0;
  }
 </style>
 </head>
 <body>
 <div class="con">
  <div class="txtBox">
  人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?<br />人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?<br />人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?<br />人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?<br />人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?人的一生至少有两次冲动,一次说走就走的旅行和一次奋不顾身的爱情。如果你有些厌倦现在的生活状态,一场冒险式的旅行便是你的解药。免费落地签已开放,来#迪拜#穿越沙漠海洋,感受异国的多元文化,也许还能收获一份真挚的爱情,结束你的单身岁月,将一个又一个精彩纷呈的旅行故事镌刻在自己生命里。你是否也有这样的冒险经历?
  </div>
  <div class="bar">
  <div class="drdap"></div>
  </div>
 </div>
 </body>
 <script type="text/javascript">
 var con = document.querySelector('.con');
 var txtBox = document.querySelector('.txtBox');
 var bar = document.querySelector('.bar');
 var drdap = document.querySelector('.drdap');
 //滚动条的高度 = 内容高度/内容盒子高度*内容高度
 drdap.style.height = con.offsetHeight/txtBox.offsetHeight*con.offsetHeight + 'px';
 drdap.onmousedown = function(ev){
  var disy = ev.clientY - drdap.offsetTop;
  document.onmousemove = function(ev){
  var currtY= ev.clientY - disy;
  if (currtY<0) { currtY = 0;}
  if (currtY>bar.offsetHeight-drdap.offsetHeight) {currtY = bar.offsetHeight-drdap.offsetHeight;}
  drdap.style.top = currtY + 'px';
  var scalY = currtY/(bar.offsetHeight-drdap.offsetHeight);
  console.log(txtBox.offsetHeight * scalY)
  txtBox.style.top = scalY * (con.offsetHeight - txtBox.offsetHeight ) + 'px'
  }
  document.onmouseup = function(ev){
  document.onmousemove = null;
  }
  return false;
 }
 </script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript与DOM组合动态创建表格实例
Dec 23 Javascript
js调用后台servlet方法实例
Jun 09 Javascript
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
Firefox和IE兼容性问题及解决方法总结
Oct 08 Javascript
网页广告中JS代码的信息监听示例
Apr 02 Javascript
JS控制输入框内字符串长度
May 21 Javascript
js锁屏解屏通过对$.ajax进行封装实现
Jul 31 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
JavaScript使用面向对象实现的拖拽功能详解
Jun 12 Javascript
用javascript制作qq注册动态页面
Apr 14 Javascript
js实现模拟购物商城案例
May 18 Javascript
微信小程序 引用其他js文件实现代码
Feb 22 #Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 #Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
Feb 22 #Javascript
JS实现一个简单的日历
Feb 22 #Javascript
js实现日历与定时器
Feb 22 #Javascript
JS验证字符串功能
Feb 22 #Javascript
Bootstrap3 模态框使用实例
Feb 22 #Javascript
You might like
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
Python logging模块用法示例
2018/08/28 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
软件测试工程师笔试题带答案
2015/03/27 面试题
医院办公室主任职责
2013/12/29 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang