随窗体滑动的小插件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 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
jQuery Ajax 全解析
Feb 08 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
Dec 12 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 Javascript
JQUERY简单按钮轮换选中效果实现方法
May 07 Javascript
node.js回调函数之阻塞调用与非阻塞调用
Nov 13 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
Aug 17 Javascript
微信小程序修改swiper默认指示器样式的实例代码
Jul 18 Javascript
微信小程序 JS动态修改样式的实现方法
Dec 16 Javascript
JS严格模式原理与用法实例分析
Apr 27 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利用事务处理转账问题
2015/04/22 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
javascript简单链式调用案例分析
2017/05/10 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python通过socket查询whois的方法
2015/07/18 Python
python3大文件解压和基本操作
2017/12/15 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
python的dict判断key是否存在的方法
2020/12/09 Python
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
中软Java笔试题
2012/11/11 面试题
销售简历自我评价
2014/01/24 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
应聘教师自荐信
2015/03/26 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
如何用python清洗文件中的数据
2021/06/18 Python