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 相关文章推荐
一样的table?不一样的table(可编辑状态table)
Sep 19 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
Mar 21 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
Nov 19 Javascript
javascript生成大小写字母
Jul 03 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
深入理解JS addLoadEvent函数
May 20 Javascript
Knockoutjs 学习系列(一)ko初体验
Jun 07 Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
Jun 19 Javascript
浅谈JavaScript闭包
Apr 09 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
Apr 30 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
php将会员数据导入到ucenter的代码
2010/07/18 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
jQuery ajax cache缓存问题
2010/07/01 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
Django框架请求生命周期实现原理
2020/11/13 Python
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
运动会跳远广播稿
2014/02/04 职场文书
维修工先进事迹
2014/05/29 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书