微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript动画系列之模拟滚动条

前面的话

当元素内容溢出元素尺寸范围时,会出现滚动条。但由于滚动条在各浏览器下表现不同,兼容性不好。所以,模拟滚动条也是很常见的应用。本文将详细介绍滚动条模拟

原理介绍

滚动条模拟实际上和元素模拟拖拽类似。

仅仅通过范围限定,使元素只可以在单一方向上拖拽

rush:js;">
Box" style="height: 200px;width: 16px;background-color:#F5F5F5;border-radius:10px;Box-shadow:inset 0 0 6px rgba(0,0.3);position:relative;">
Box-shadow:inset 0 0 6px rgba(0,.3);border-radius:10px;position:absolute;">

通过将上面代码封装成函数,可以实现横向和纵向两种滚动条

rush:js;">
Box1" style="height: 200px;width: 16px;background-color:#F5F5F5;border-radius:10px;Box-shadow:inset 0 0 6px rgba(0,0.3);position:relative;">
Box-shadow:inset 0 0 6px rgba(0,.3);border-radius:10px;position:absolute;">
Box2" style="height: 16px;width: 200px;background-color:#F5F5F5;border-radius:10px;Box-shadow:inset 0 0 6px rgba(0,0.3);position:relative;">
Box-shadow:inset 0 0 6px rgba(0,.3);border-radius:10px;position:absolute;">

应用

下面来介绍通过滚动条实现的几个应用

数字加减

通过移动滚动条来实现数字的加减。

比例关系为:

滚动条已移动距离/滚动条可移动距离= 数字当前值/数字最大值

rush:js;">
Box" style="height: 16px;width: 200px;display:inline-block;background-color:#F5F5F5;border-radius:10px;Box-shadow:inset 0 0 6px rgba(0,0.3);position:relative;">
Box-shadow:inset 0 0 6px rgba(0,.3);border-radius:10px;position:absolute;">

元素尺寸

通过拖动滚动条来实现元素尺寸的变化,以改变元素宽度为例

。比例关系为:

滚动条已移动距离/滚动条可移动距离= 元素当前宽度/元素最大宽度

rush:js;">
Box" style="height: 16px;width: 200px;display:inline-block;background-color:#F5F5F5;border-radius:10px;Box-shadow:inset 0 0 6px rgba(0,.3);border-radius:10px;position:absolute;">
display:inline-block;">

内容滚动

通过拖动滚动条来实现内容滚动,

比例关系为:

滚动条已移动距离/滚动条可移动距离= 内容已移动距离/内容可移动距离

rush:js;">
Box" style="height: 200px;width: 16px;display:inline-block;background-color:#F5F5F5;border-radius:10px;Box-shadow:inset 0 0 6px rgba(0,0.3);position:relative;vertical-align:middle;">
Box-shadow:inset 0 0 6px rgba(0,.3);border-radius:10px;position:absolute;">
display:inline-block;line-height:30px;vertical-align:middle;position:relative;overflow:hidden;">
文字
测试文字
测试文字
测试文字
测试文字
测试文字
测试文字
测试文字
测试文字
测试文字
测试文字
测试文字

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

原文地址:https://www.jb51.cc/js/43607.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐