# GazeScroll.js - 滚动显示插件
**Repository Path**: ganxiaozhe/GazeScroll
## Basic Information
- **Project Name**: GazeScroll.js - 滚动显示插件
- **Description**: 可高度自定义的滚动显示插件,使各类多个自定义事件效果随着页面滚动而“生效”
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2021-03-15
- **Last Updated**: 2022-07-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# GazeScroll.js - 滚动显示插件
#### 介绍
可高度自定义的滚动显示插件,该插件由 Ganxiaozhe 开发,使各类多个自定义事件效果随着页面滚动而“生效”。
GazeScroll.js 依赖 gQuery v1.4.7 及以上版本。
website: [https://www.gquery.net/plugins/gazescroll/](https://www.gquery.net/plugins/gazescroll/)
#### 安装教程
你需要引入以下文件:(请勿在开发环境下使用压缩版本,否则将失去错误相关警告!)
```html
```
#### 使用说明
GazeScroll.js 通过 $.extend 将其方法拓展进 gQuery 方法链,你可以通过传入对象的方式对单个或多个元素进行绑定。
```javascript
$.gazescroll({
sel:String,
calc:Function,
show:Function,
hide:Function
});
```
- calc 函数在元素在浏览器可视范围内滚动时重复执行,并会传入一个包含各项数据的对象。
- show 函数在元素进入浏览器可视范围内时执行一次。
- hide 函数在元素离开浏览器可视范围内时执行一次。
```javascript
calcData => {
h:Number, // 该元素高度
pos:Object, // 该元素左上角相对文档的{top, left},以及右下角的{bottom}
dist:Object, // 该元素左上角相对浏览器的{top, left}
pp:Number, // 该元素距离滚出可视范围的百分比,会根据滚动方向调整
rpp:Number, // 该元素距离滚出可视范围的百分比,不会根据滚动方向调整
}
```
对于已经绑定的元素,可用 $.removeGazescroll([sel:String]) 进行移除。不进行穿参调用时,将移除全部绑定事件。
#### 示例
```javascript
$.gazescroll({
sel: '.gl-progress-bar',
calc: function(data){
let $obj = $(this);
let $prog = $obj.find('.gl-progress-inner'), pr = {
type: $obj.attr('data-type'), rpp: data.rpp*100+'%', pp: data.pp*100+'%'
};
switch(pr.type){
case 'rpp':$prog.width(pr.rpp);break;
case 'pp':$prog.width(pr.pp);break;
}
}
});
```
```javascript
$.gazescroll({
sel: '#ex-words',
calc: function(data){
let $obj = $(this), pp = Math.floor(data.pp*10), words = '隐私,安全可控'.split('');
pp>7 && (pp=7);
for(let i = 0; i<=6-pp; i++){
words[i] = '*';
}
$obj.text(words.join(''));
}
});
$.gazescroll({
sel: '#ex-words-re',
calc: function(data){
let $obj = $(this), pp = Math.floor(data.pp*10), words = '隐私,安全可控'.split('');
pp>7 && (pp=7);
for(let i = 6; i>=pp; i--){
words[i] = '*';
}
$obj.text(words.join(''));
}
});
```