随窗体滑动的小插件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 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
深入浅出分析javaScript中this用法
May 09 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
Aug 06 Javascript
Javascript实现倒计时(防页面刷新)实例
Dec 13 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
Jan 20 Javascript
Vue 单文件中的数据传递示例
Mar 21 Javascript
图片加载完成再执行事件的实例
Nov 16 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
VueJS 取得 URL 参数值的方法
Jul 19 Javascript
vue组件是如何解析及渲染的?
Jan 13 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
PHP简单选择排序算法实例
2015/01/26 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
javascript编写简易计算器
2017/05/06 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python list语法学习(带例子)
2013/11/01 Python
python复制与引用用法分析
2015/04/08 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python 类的特殊成员解析
2018/06/20 Python
实例详解Python模块decimal
2019/06/26 Python
简单了解python代码优化小技巧
2019/07/08 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
方太官方网上商城:销售方太抽油烟机、燃气灶、消毒柜等
2017/01/17 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
精彩广告词大全
2014/03/19 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python