随窗体滑动的小插件sticky源码


Posted in Javascript onJune 21, 2013
     $.fn.stickyfloat = function(options, lockBottom) {
                var $obj                 = this;
                var parentPaddingTop     = parseInt($obj.parent().css('padding-top'));
                var startOffset         = $obj.parent().offset().top;
                var opts                 = $.extend({ startOffset: startOffset, offsetY: parentPaddingTop, duration: 200, lockBottom:true }, options);                $obj.css({ position: 'absolute' });
                if(opts.lockBottom){
                    var bottomPos = $obj.parent().height() - $obj.height() + parentPaddingTop;
                    if( bottomPos < 0 )
                        bottomPos = 0;
                }
                $(window).scroll(function () {
                    $obj.stop();

                    var pastStartOffset            = $(document).scrollTop() > opts.startOffset;   
                    var objFartherThanTopPos    = $obj.offset().top > startOffset;   
                    var objBiggerThanWindow     = $obj.outerHeight() < $(window).height();   
                    if( (pastStartOffset || objFartherThanTopPos) && objBiggerThanWindow ){
                        var newpos = ($(document).scrollTop() -startOffset + opts.offsetY );
                        if ( newpos > bottomPos )
                            newpos = bottomPos;
                        if ( $(document).scrollTop() < opts.startOffset )
                            newpos = parentPaddingTop;
                        $obj.animate({ top: newpos }, opts.duration );
                    }
                });
            };

使用方法很简单:只要在页面中引入该插件,然后用选择器调用:
$('#menu15').stickyfloat({ duration: 500 });
$('#menu14').stickyfloat({ duration: 500 });
$('#menu13').stickyfloat({ duration: 500 });
$('#menu12').stickyfloat({ duration: 500 });

后面的duration参数表示滑动的速度,越大越慢。

Javascript 相关文章推荐
新手常遇到的一些jquery问题整理
Aug 16 Javascript
在Windows上安装Node.js模块的方法
Sep 25 Javascript
动态加载JS文件的三种方法
Nov 08 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
JS实现网页表格自动变大缩小的方法
Mar 09 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
webpack 2的react开发配置实例代码
Jul 28 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
浅析vue给不同环境配置不同打包命令
Aug 17 Javascript
vue组件间通信六种方式(总结篇)
May 15 Javascript
jquery中文乱码的多种解决方法
Jun 21 #Javascript
js单向链表的具体实现实例
Jun 21 #Javascript
javascript setTimeout和setInterval计时的区别详解
Jun 21 #Javascript
js简易namespace管理器 实例代码
Jun 21 #Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 #Javascript
js验证模型自我实现的具体方法
Jun 21 #Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
Jun 21 #Javascript
You might like
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
php实现的简单检验登陆类
2015/06/18 PHP
基于php实现的验证码小程序
2016/12/13 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python查找目录下指定扩展名的文件实例
2015/04/01 Python
python计算方程式根的方法
2015/05/07 Python
Python实现字典依据value排序
2016/02/24 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
python单例模式实例解析
2018/08/28 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
网络编辑岗位职责范本
2014/02/10 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
大一新生学期自我评价
2014/04/09 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
检讨书格式
2015/01/23 职场文书