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 相关文章推荐
JQuery小知识
Oct 15 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
Dec 24 Javascript
纯CSS3代码实现滑动开关效果
Aug 19 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
javascript 利用arguments实现可变长参数
Nov 21 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
vue项目每30秒刷新1次接口的实现方法
Dec 04 Javascript
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
Oct 20 Javascript
快速解决element的autofocus失效问题
Sep 08 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
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
JavaScript中的作用域链和闭包
2012/06/30 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
Python二元算术运算常用方法解析
2020/09/15 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
店长职务说明书
2014/02/04 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
捐款仪式主持词
2015/07/04 职场文书
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
python基础之类属性和实例属性
2021/10/24 Python
Python matplotlib绘制雷达图
2022/04/13 Python
Nginx 常用配置
2022/05/15 Servers
Python时间操作之pytz模块使用详解
2022/06/14 Python