javascript实现悬浮跟随框缓动效果

 更新时间:2022年03月31日 14:07:22   作者:青天诀  
这篇文章主要为大家详细介绍了javascript实现悬浮跟随框缓动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

悬浮跟随框是我们在网页中经常见到的效果,我们还是使用上一实例中的运动框架去实现。

1、定义一个运动函数,当触发时调用,并且传递一个目标位置作为参数
2、运动函数内部,调用定时函数,在定时函数内部,先求出元素位置与目标位置的距离差,然后除以一个数值作为速度(由于距离差一直在缩小,所以速度值也一直在变小,从而达到缓动效果)
3、由于网页上位置设置最小单位是1px,所以在步骤二中的运算可能会出现小数的情况,我们需要对小数进行处理,否则元素到达的位置总是和目标位置有1px的差距。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>New Web Project</title>
        <style>
            #div1{
                width:100px;
                height:150px;
                background: red;
                border:1px solid #008000;
                right:0px;
                position: absolute;
            }
            #div2{
                width:1920px;
                height:1px;
                background:red;
                
                position: absolute;
            }
            
        </style>
        <script>
            window.οnlοad=function(){
                var oDiv=document.getElementById('div1');
                var oDiv1=document.getElementById('div2');
                var timer=null;
                oDiv.style.top=(document.documentElement.clientHeight-oDiv.offsetHeight)/2+document.documentElement.scrollTop+'px';
                window.οnscrοll=function(){
                    var scrolltop=document.documentElement.scrollTop || document.body.scrollTop;
                    var iTarget=(document.documentElement.clientHeight-oDiv.offsetHeight)/2+scrolltop;
                    iTarget=Math.floor(iTarget);
                    oDiv1.style.top=iTarget+'px';
                    startMove(iTarget);
                    
                };
                function startMove(itarget){
                    
                    clearInterval(timer);
                    timer=setInterval(function(){
                        var iDis=itarget-oDiv.offsetTop;
                        var speed=iDis/5;
                        if(iDis>=0){
                            speed=Math.ceil(speed);//当speed为小于1的数时,将它变为1,从而使元素位置移动一个像素,因为小于1的像素会被近似为0
                        }
                        else{
                            speed=Math.floor(speed);
                        }
                        if(oDiv.offsetTop==itarget)
                        {
                            clearInterval(timer);
                        }
                        else
                        {
                            oDiv.style.top=oDiv.offsetTop+speed+'px';
                        }
                        document.title=oDiv.offsetTop;
                    },30);
                    
                }
                
            };
        </script>
    </head>
    <body style="height:2000px;">
        <div id="div1">
            
        </div>
        
    </body>
</html>

运行结果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 深入理解Javascript闭包 新手版

    深入理解Javascript闭包 新手版

    最近在网上查阅了不少Javascript闭包(closure)相关的资料,写的大多是非常的学术和专业。对于初学者来说别说理解闭包了,就连文字叙述都很难看懂。撰写此文的目的就是用最通俗的文字揭开Javascript闭包的真实面目。
    2010-12-12
  • Dropify.js图片宽高自适应的方法

    Dropify.js图片宽高自适应的方法

    本篇文章主要介绍了Dropify.js图片宽高自适应的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • ES6新增的math,Number方法

    ES6新增的math,Number方法

    ES6新增的math,Number方法,小编觉得非常不错,需要的朋友参考下吧
    2017-08-08
  • js中document.getElementById(id)的具体用法

    js中document.getElementById(id)的具体用法

    本文主要介绍了js中document.getElementById(id)的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 一定有你会用到的JavaScript一行代码实用技巧总结

    一定有你会用到的JavaScript一行代码实用技巧总结

    这篇文章主要为大家介绍了一定有你会用到的JavaScript一行代码总结,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    这篇文章主要介绍了selenium 反爬虫之跳过淘宝滑块验证功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • JS实现消灭星星案例

    JS实现消灭星星案例

    这篇文章主要为大家详细介绍了JS实现消灭星星案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • js实现正则匹配中文标点符号的方法

    js实现正则匹配中文标点符号的方法

    这篇文章主要介绍了js实现正则匹配中文标点符号的方法,涉及JavaScript正则匹配与判定的简单使用技巧,需要的朋友可以参考下
    2015-12-12
  • Opacity.js

    Opacity.js

    Opacity.js...
    2007-01-01
  • 微信小程序前端通过weixin://wxpay/bizpayurl生成支付二维码全过程

    微信小程序前端通过weixin://wxpay/bizpayurl生成支付二维码全过程

    这篇文章主要给大家介绍了关于微信小程序前端通过weixin://wxpay/bizpayurl生成支付二维码的相关资料,weixin://wxpay/bizpayurl 是一个微信支付的链接地址,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07

最新评论