最近闲来无事,多封装些功能性组件。后期会有更多放出来,大家可以多关注一下。

先上参数:

type:"show",           默认为“show”,“show”意为当能够在可视区看到指定位置的节点时触发,“scroll”意为浏览器滚动过指定结点时触发。
            pos:"#scrollBox",       默认为"#scrollBox",通过此结点获取指定位置。
            delayDistance:0,       在指定位置的上下浮动距离,单位为像素,可为负值。
            single:true,            是否只触发一次。 true(是)、false(不是)
            passCallback:function(){},    超过指定位置的触发函数。
            backCallback:function(){}     小于指定位置时的触发函数。

demo如下:

1.html

<body style="height: 6000px;">

<div style="height: 1000px;background:#ff0"></div>
<div id="trigger1" style="height: 1500px;background: #f00;"></div> </div>

2.js(组件)

    function scrollTrigger(obj){
this.set={
type:"show",
pos:"#scrollBox",
delayDistance:0,
single:true,
passCallback:function(){},
backCallback:function(){}
}
this.passFlag=false;
this.backFlag=false;
$.extend(this.set,obj)
var _this=this;
this.init=function(){
$(window).scroll(function(){
if(_this.set.type=="scroll"){
if($(window).scrollTop()>=$(_this.set.pos).offset().top+_this.set.delayDistance){
if(_this.set.single==true&&_this.passFlag==false){
_this.set.passCallback();
_this.passFlag=true;
}else if(_this.set.single==true&&_this.passFlag==true){ }else{
_this.set.passCallback();
}
}
if($(window).scrollTop()<$(_this.set.pos).offset().top+_this.set.delayDistance){
if(_this.set.single==true&&_this.backFlag==false){
_this.set.backCallback();
_this.backFlag=true;
}else if(_this.set.single==true&&_this.backFlag==true){ }else{
_this.set.backCallback();
}
}
}
if(_this.set.type=="show"){
if($(window).scrollTop()>=$(_this.set.pos).offset().top-$(window).height()+_this.set.delayDistance){
if(_this.set.single==true&&_this.passFlag==false){
_this.set.passCallback();
_this.passFlag=true;
}else if(_this.set.single==true&&_this.passFlag==true){ }else{
_this.set.passCallback();
}
}
if($(window).scrollTop()+$(window).height()<$(_this.set.pos).offset().top+_this.set.delayDistance){
if(_this.set.single==true&&_this.backFlag==false){
_this.set.backCallback();
_this.backFlag=true;
}else if(_this.set.single==true&&_this.backFlag==true){ }else{
_this.set.backCallback();
}
}
}
})
}
this.init();
}

3. js (调用)

    var trigger1=new scrollTrigger({
type:"show",
pos:"#trigger1",
single:false,
delayDistance:0,
passCallback:function(){
console.log("pass");
},
backCallback:function(){
console.log("back");
}
})

基于jquery的垂直滚动触发器,多参数可设置。的更多相关文章

  1. 基于 jQuery 实现垂直滑动的手风琴效果

    今天我们要与大家分享一个漂亮而灵活的垂直 jQuery 手风琴效果.其主要思想是扩大手风琴片上的点击和显示更多的信息.其他内容片段将变得不那么透明.当使用一个导航箭头导航下一个片段,新的片会从顶部或底 ...

  2. 基于jQuery左侧小图滚动右侧大图显示代码

    今天给大家分享一款 jQuery左侧小图滚动右侧大图显示代码是一款基于jQuery实现的左侧滚动图片点击大图查看效果代码.该实例适用浏览器:IE8.360.FireFox.Chrome.Safari. ...

  3. 基于jQuery实现页面滚动时顶部导航显示隐藏效果

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  4. 基于jQuery封装的分页组件(可自定义设置)

    jQuery封装的分页组件 前几天做了一个vue的组件分页,而现在需求是jquery的分页,我就根据我自己的需求写了一个.在网上找了很久的基于jquery的分页封装,可是都不是我想要的结果,那么今天我 ...

  5. jquery垂直滚动插件一个参数用于设置速度,兼容ie6

    利用外层的块级元素负外边距来滚动 1.使用 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://ww ...

  6. 使用 jQuery.Pin 垂直滚动时固定导航

    ZKEACMS的导航默认是不能固定的,随着页面的滚动而滚动,为了有更好的用户体验,当页面往下滚动时,可以将导航固定在顶端,这样方便用户点击. jQuery Pin 借助jQuery的一个插件 jQue ...

  7. 基于JQuery打造无缝滚动新闻

    JQuery实现 新闻无缝滚动 一.使用"首尾追加"实现无缝滚动 <head lang="en"> <meta charset="U ...

  8. jQuery图片垂直滚动焦点图

    在线演示 本地下载

  9. jQuery BreakingNews 间歇滚动

    BreakingNews 是一款基于jQuery的间歇滚动插件.它可以设置标题.标题颜色.标题背景颜色.链接颜色.字体大小.边框.宽度.自动滚动.间歇时间等等,同时它还好提供两种过度方式--淡入淡出( ...

随机推荐

  1. 浅谈使用NIO,AIO的感受

    花了十多天的时间把原来的WEB服务由BIO(阻塞IO)模式改写成NIO(非阻塞IO)模式,然后在xp机子上用ab测试并发性能,确实提升了30%左右的并发性能,测试完成后,当时感觉还是挺满意的.几天前在 ...

  2. 《剑指offer》— JavaScript(31)整数中1出现的次数(从1到n整数中1出现的次数)

    整数中1出现的次数(从1到n整数中1出现的次数) 题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12 ...

  3. c 取读地图输入

    ][];     scanf("%ld%ld",&n,&m);     ;i<n;i++)         scanf("%s",mat[ ...

  4. vue子组件的自定义事件

    父子组件的信息传递无碍就是父组件给子组件传值(props和$attrs)和父组件触发子组件的事件($emit) 之前已经谈过了父组件给子组件传值了,现在来说说父组件触发子组件的自定义事件吧-- 实际上 ...

  5. 实现vue2.0响应式的基本思路

    最近看了vue2.0源码关于响应式的实现,以下博文将通过简单的代码还原vue2.0关于响应式的实现思路. 注意,这里只是实现思路的还原,对于里面各种细节的实现,比如说数组里面数据的操作的监听,以及对象 ...

  6. js实现表单提交submit(),onsubmit

    通常表单的提交有两种方式,一是直接通过html的form提交,代码如下: <form action="" method="" id="forms ...

  7. js拾遗: 函数字面量

    今天落叶同学发我一篇文章,我看到一个"新"名词 "函数字面量" (也可叫直接量),当时我就郁闷了,这是什么东西? 我怎么没听说过..回头翻了下权威指南,在第 4 ...

  8. 用phpStorm的数据库工具来管理你的数据库

    phpStorm是一个功能强大的IDE,不仅对PHP提供了支持,而且对前端HTML.CSS.JavaScript的支持也是非常不错的.此外,phpStorm还集成了很多实用的功能,下面就phpStor ...

  9. Export SQLite data to Excel in iOS programmatically(OC)

    //For the app I have that did this, the SQLite data was fairly large. Therefore, I used a background ...

  10. 第9月第16天 tolua++ cocos2dx cocos2d-lua

    1. http://www.jianshu.com/p/1cdfc60da04f 2.lua c++ Lua访问C++类 现在,我们在Lua里面操作这个Student类.注意,我们绑定的每一个函数都需 ...