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 判断数组是否已包含了某个元素的函数
May 30 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
JS实现时间格式化的方式汇总
Oct 16 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
May 11 Javascript
Jquery实现的角色左右选择特效
May 21 Javascript
JavaScript 学习笔记之数据类型
Jan 14 Javascript
使用BootStrap实现用户登录界面UI
Aug 10 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
Mar 13 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
echarts多条折线图动态分层的实现方法
May 24 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 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
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
两个开源的Php输出Excel文件类
2010/02/08 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
PHP chop()函数讲解
2019/02/11 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
Javascript 模式实例 观察者模式
2009/10/24 Javascript
Exjs 入门篇
2010/04/07 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
python实现换位加密算法的示例
2018/10/14 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python底层封装实现方法详解
2020/01/22 Python
Python Django搭建网站流程图解
2020/06/13 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
大学毕业的自我鉴定
2013/10/08 职场文书
现代化办公人员工作的自我评价
2013/10/16 职场文书
关于逃课的检讨书
2014/01/23 职场文书
中学教师教育感言
2014/02/21 职场文书
小学中等生评语
2014/12/29 职场文书
收银员岗位职责
2015/02/03 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
Python基于百度AI实现抓取表情包
2021/06/27 Python