javascript-JavScript页面悬浮框,菜鸟求助

问题描述

JavScript页面悬浮框,菜鸟求助

我要在一个页面放2个悬浮框,悬浮框随页面的上下滚动有上下波动的效果,最终固定在同一位置,求助路过的大神!!

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
        body {height: 2000px;}
        #div1{ width: 100px; height: 150px; background: red; position: absolute;right: 0;bottom: 0; }
        #div2{ width: 200px;height: 200px;background:green; position: absolute; left: 0; top: 200px;}
    </style>

</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
    <script>
        window.onscroll = function() {
            var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动的距离

            var oDiv = document.getElementById('div1');
            oDiv.style.top = (document.documentElement.clientHeight - oDiv.offsetHeight) / 2 + scrollTop + 'px';
            startMove("div1", parseInt((document.documentElement.clientHeight - oDiv.offsetHeight) / 2 + scrollTop)); //计算滚动后的offsetTop

            var oDiv2 = document.getElementById('div2');
            oDiv2.style.top = (document.documentElement.clientHeight - oDiv2.offsetHeight) / 2 + scrollTop + 'px';
            startMove("div2", parseInt((document.documentElement.clientHeight - oDiv2.offsetHeight) / 2 + scrollTop));
        };

        function startMove(obj, target) {
            var timer = null;
            var oDiv = document.getElementById(obj);

            // 实现animate动作
            clearInterval(timer);
            var iTarget = target;
            timer = setInterval(function() {
                var speed = (iTarget - oDiv.offsetTop) / 6;
                speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
                if ((speed >= 0 && oDiv.offsetTop >= iTarget) || (speed <= 0 && oDiv.offsetTop <= iTarget)) {
                    clearInterval(timer);
                } else {
                    oDiv.style.top = oDiv.offsetTop + speed + 'px';
                }
            }, 30);

        }
    </script></html>

解决方案

这个地方实质上是在运用setTimeout和setInterval时没有弄清楚二者的关系,这个地方你只要把setInterval更换成setTimeout即可解决问题;
setInterval是会持续执行,而setTimeout则仅执行一次,当然同样的,清除定时器指令也得更换为clearTimeout,你试试咯

时间: 2024-10-02 23:32:57

javascript-JavScript页面悬浮框,菜鸟求助的相关文章

jsp 弹窗-菜鸟求助:如何在JSP页面中弹出窗口

问题描述 菜鸟求助:如何在JSP页面中弹出窗口 从数据库中查询到了学生的基本信息,每条记录的后面有个"查看详细"的按钮,点击后弹出一个小窗口能将学生的信息显示出来,应该如何做?求各位大神帮忙,最好有个示例,不胜感激--

菜鸟求助,一个关于正则表达式的问题

问题描述 菜鸟求助,一个关于正则表达式的问题 http://tieba.baidu.com/p/3061796036 因为包含html标签,所以显示出来总是有问题,这是在百度贴吧的连接,求大神帮帮忙 解决方案 1.zo*,我这样写是不是会重复匹配的只有'o'一个字符:zo* 会匹配这样的字符串: zo zoooo zooooooooooooooo ,明白? 2.String html = " example解决方案二: */是0-n个 相关文章 正则表达式-菜鸟求助:关于python的正则匹配问

js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例_javascript技巧

题目中问题一拆为二: 1.文字在超出长度时,如何实现用省略号代替? 2.超长长度的文字在省略显示后,如何在鼠标悬停时,以悬浮框的形式显示出全部信息? 文字在超出长度时,如何实现用省略号代替? 用CSS实现超长字段用省略号表示的方法:所有浏览器兼容! html代码如下: <div style="width:150px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis"> 用CSS实现超长字段被省略的简单方法

js和css写一个可以自动隐藏的悬浮框_javascript技巧

今天写一个小实例,用js和css写一个可以自动隐藏的悬浮框.css肯定是用来控制样式的,js用来控制器显示与隐藏的.显示与隐藏通常有两种方法实现:1,用js控制其显示属性:2,用js控制其大小. 今天要说的就是通过控制其大小来实现元素的显隐,原理:为其注册鼠标移入.移出的事件,当鼠标移出对象范围,将其宽度设为1,当鼠标再次移入该对象,将其宽度还原.很简单,我们一起看看吧! 隐藏状态:   左边那一条窄线就是隐藏以后的悬浮框. 显示状态:   当鼠标滑到左边的悬浮框上,悬浮框就又显示出来了. CS

timer-关于右下角跟随悬浮框疑问,下列的js代码为什么在IE中有效果而FF中没有?该怎样解决?

问题描述 关于右下角跟随悬浮框疑问,下列的js代码为什么在IE中有效果而FF中没有?该怎样解决? window.onscroll=function(){ var oDiv=document.getElementById('div1'); var scrollTop=document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; //oDiv.style.top=document.docume

重写网站-网站菜鸟求助:网站重写

问题描述 网站菜鸟求助:网站重写 有A.B两个网站,各自有自己的数据库.现在要求仿照B的样子(页面风格.布局等)修改A手里有B的代码.求助大侠们,这个难度有多大,数据库可以不动么?谢谢咯~ 解决方案 比如B页面上有4个输入框,要保存4个数据而A页面上只有3个输入框,多余的1个数据你保存到哪? 肯定要改库结构了 解决方案二: 比如B页面上有4个输入框,要保存4个数据而A页面上只有3个输入框,多余的1个数据你保存到哪? 肯定要改库结构了

服务器-【菜鸟求助】请进来帮帮忙weblogic11g的

问题描述 [菜鸟求助]请进来帮帮忙weblogic11g的 具体情况: 我的本地环境是weblogic8和JDK1.4,项目启动,运行都没问题,现在是把这个项目放到一个服务器上,服务器的环境是weblogic11g,JDK1.6,(至于为啥会这样,别在意这些细节了)启动运行也没问题,但是当跳转到,调用FileY,这个类的页面时候,就会报下面的错 [ServletContext@3843485[app:sdywxt module:sdywxt path: spec-version:null]] S

简单,菜鸟求助

问题描述 菜鸟求助:在用vs2.0做aspx的页面中,怎么不可以用<frameset>了吗,还是可以用,那怎么用拉?想用在论坛上面!在制作用户自定义的控件中(.ascx),放入导航menu后,应该注意些上面?怎么我把.ascx放入页面后总出错?谢谢指点! 解决方案 解决方案二:可以用frameset//怎么我把.ascx放入页面后总出错你出什么错误,别人怎么猜得出来?解决方案三:你要把html的2.0验证去掉在工具,选项-文本编辑器-HTML-验证解决方案四:是转到设计提示出错?那运行看看!或

mysql-【菜鸟求助】JSP连接Mysql选取属性大小写的问题

问题描述 [菜鸟求助]JSP连接Mysql选取属性大小写的问题 数据库中表单里有属性:NAME.CODE和ID.我在JSP页面中调取属性时写了: out.print(rst.getString("NAME") + rst.getString("CODE")); 浏览器没有加载出来数据: 将内容改为: out.print(rst.getString("name") + rst.getString("code")); 浏览器可以加