JS实现侧悬浮浮动实例代码


Posted in Javascript onNovember 29, 2013

效果:

JS实现侧悬浮浮动实例代码

思路:

首先,加载onscroll控制滚动条。然后写缓存运动的方法,缓冲运动的方法是先计算出DIV缓冲的速度,并且将其取整,再进行运动判断什么时候到达终点。最后将其参数返回。再在onscroll里面调用此方法,并且将终点计算出来赋予此方法的参数。

代码:

<head runat="server">
    <title></title>
    <style type="text/css">
        #div1
        {
            width: 200px;
            height: 200px;
            background: #0000FF;
            position: absolute;
            right: 0;
            bottom: 0;
        }
    </style>
    <script type="text/javascript">
        window.onscroll = function () {
            var oDiv = document.getElementById('div1');
            var DivScroll = document.documentElement.scrollTop || document.body.scrollTop;      //获取移动高度
            //                        oDiv.style.top = (document.documentElement.clientHeight - oDiv.offsetHeight)/2 + DivScroll + 'px';
            move(parseInt((document.documentElement.clientHeight - oDiv.offsetHeight) / 2 + DivScroll));    //调用传参,其中里面的参数是DIV要走的终点。也就是(可视高度-DIV高度)/2+移动高度
        };
        var timer = null;
        function move(end) {
            clearInterval(timer);       //首先,先关闭之前如果有开启的setInterval;
            timer = setInterval(function () {       
                var oDiv = document.getElementById('div1');
                var speed = (end - oDiv.offsetTop) / 5;     //计算DIV要走的速度,DIV要走的速度就等于(终点-offsetTop高度)/缩放系数
                speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);       //为了避免小数,将其取整
                if (oDiv.offsetTop == end) {        //当DIV到达终点,则关闭setInterval;
                    clearInterval(timer);
                }
                else {
                    oDiv.style.top = oDiv.offsetTop + speed + 'px';     //移动div
                }
            }, 30);
        }
    </script>
</head>
<body style="height: 1000px;">
    <div id="div1">
    </div>
</body>
Javascript 相关文章推荐
JavaScript 编程引入命名空间的方法
Jun 29 Javascript
Jquery中增加参数与Json转换代码
Nov 20 Javascript
仿jQuery的siblings效果的js代码
Aug 09 Javascript
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
JQuery选择器绑定事件及修改内容的方法
Jan 23 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
Aug 27 Javascript
jQuery实现下拉菜单的实例代码
Jun 19 jQuery
JS验证码实现代码
Sep 14 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
Node.js设置定时任务之node-schedule模块的使用详解
Apr 28 Javascript
WebRTC记录音视频流(web技术分享)
Feb 24 Javascript
js模拟点击以提交表单为例兼容主流浏览器
Nov 29 #Javascript
JS实现日期加减的方法
Nov 29 #Javascript
js弹出层永远居中实现思路及代码
Nov 29 #Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 #Javascript
JS取文本框中最小值的简单实例
Nov 29 #Javascript
js中的eventType事件及其浏览器支持性介绍
Nov 29 #Javascript
js简单实现根据身份证号码识别性别年龄生日
Nov 29 #Javascript
You might like
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
2013/06/18 PHP
PHP实现合并discuz用户
2015/08/05 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
深入理解Python 多线程
2020/06/16 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
web页面录屏实现
2019/02/12 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
大学生创业计划书的格式要求
2013/12/29 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
小学生获奖感言范文
2014/02/02 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
病媒生物防治方案
2014/05/13 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL