随窗体滑动的小插件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 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
javascript使用正则表达式检测IP地址
Dec 03 Javascript
详解JavaScript中void语句的使用
Jun 04 Javascript
jquery中实现时间戳与日期相互转换
Apr 12 Javascript
AngularJS 工作原理详解
Aug 18 Javascript
使用bat打开多个cmd窗口执行gulp、node
Feb 17 Javascript
json数据格式常见操作示例
Jun 13 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
vue模块移动组件的实现示例
May 20 Javascript
Element InputNumber 计数器的实现示例
Aug 03 Javascript
vue 页面跳转的实现方式
Jan 12 Vue.js
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
第二节 对象模型 [2]
2006/10/09 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
PHP实现上传多图即时显示与即时删除的方法
2017/05/09 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
jQuery基本选择器之标签名选择器
2016/09/03 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
python制作一个桌面便签软件
2015/08/09 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
2020/03/19 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
银行柜员应聘推荐信范文
2013/11/24 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
农村文化活动总结
2014/08/28 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
女性励志书籍推荐
2019/08/19 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang