溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript怎么實現(xiàn)懸浮跟隨框緩動效果

發(fā)布時間:2022-03-31 17:10:12 來源:億速云 閱讀:151 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下javascript怎么實現(xiàn)懸浮跟隨框緩動效果的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

1、定義一個運動函數(shù),當觸發(fā)時調(diào)用,并且傳遞一個目標位置作為參數(shù)
2、運動函數(shù)內(nèi)部,調(diào)用定時函數(shù),在定時函數(shù)內(nèi)部,先求出元素位置與目標位置的距離差,然后除以一個數(shù)值作為速度(由于距離差一直在縮小,所以速度值也一直在變小,從而達到緩動效果)
3、由于網(wǎng)頁上位置設置最小單位是1px,所以在步驟二中的運算可能會出現(xiàn)小數(shù)的情況,我們需要對小數(shù)進行處理,否則元素到達的位置總是和目標位置有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的數(shù)時,將它變?yōu)?,從而使元素位置移動一個像素,因為小于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 >
        <div id="div1">
            
        </div>
        
    </body>
</html>

運行結(jié)果圖:

javascript怎么實現(xiàn)懸浮跟隨框緩動效果

以上就是“javascript怎么實現(xiàn)懸浮跟隨框緩動效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI