成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

JS實(shí)現(xiàn)css屬性動(dòng)畫(huà)效果

LoftySoul / 2875人閱讀

摘要:代碼屬性運(yùn)動(dòng)框架高動(dòng)畫(huà)寬動(dòng)畫(huà)透明度動(dòng)畫(huà)高寬透明度鏈?zhǔn)絼?dòng)畫(huà)高寬透明度同時(shí)動(dòng)畫(huà)引入的代碼運(yùn)動(dòng)框架運(yùn)動(dòng)標(biāo)桿假設(shè)所有運(yùn)動(dòng)都達(dá)到了目標(biāo)值去當(dāng)前的值獲取小數(shù)四舍五入獲取整數(shù)算速度檢測(cè)屬性動(dòng)畫(huà)是否全部達(dá)到目標(biāo)值如果不是所有的動(dòng)畫(huà)都達(dá)到目標(biāo)值,標(biāo)桿

html代碼


    
        
        css屬性運(yùn)動(dòng)框架
 
 
 
    
    
        
  • 高動(dòng)畫(huà)
  • 寬動(dòng)畫(huà)
  • 透明度動(dòng)畫(huà)
  • 高寬透明度鏈?zhǔn)絼?dòng)畫(huà)
  • 高寬透明度同時(shí)動(dòng)畫(huà)
引入的JS代碼,運(yùn)動(dòng)框架move.js
//運(yùn)動(dòng)
//startMove(obj,{attr1:itarget1,attr2:itarget2},fn)
function startMove(obj,json,fn) {
        clearInterval(obj.timer);
        obj.timer = setInterval(function() {
            var flag=true;//標(biāo)桿,假設(shè)所有運(yùn)動(dòng)都達(dá)到了目標(biāo)值
                for(var attr in json)
            {
                    //1.去當(dāng)前的值
                    var icur = 0;
                    if(attr == "opacity") {
                        icur = Math.round(parseFloat(getStyle(obj,attr)) * 100); //parseFloat獲取小數(shù).Math.round四舍五入
                    } else {
                        icur = parseInt(getStyle(obj, attr)); //parseInt獲取整數(shù)
                    }
                    //2.算速度
                    var speed = (json[attr] - icur) / 8;
                    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
                    //3.檢測(cè)屬性動(dòng)畫(huà)是否全部達(dá)到目標(biāo)值
                    if(icur !== json[attr]) 
                    {
                        flag=false;//如果不是所有的動(dòng)畫(huà)都達(dá)到目標(biāo)值,標(biāo)桿設(shè)為false
                    }        
                    if(attr == "opacity") 
                    {
                            obj.style.filter = "alpha(opacity:" + (icur + speed) + ")";
                            obj.style.opacity = (icur + speed) / 100;
                        }
                    else 
                    {
                            obj.style[attr] = icur + speed + "px";
                    }
                }
                //在動(dòng)畫(huà)結(jié)束的時(shí)候檢測(cè)是否有回調(diào)函數(shù),如果檢測(cè)到有回調(diào)函數(shù),執(zhí)行
                    if(flag)
                    {
                        clearInterval(obj.timer);
                        if(fn)
                        {
                            fn();
                        }
                    }
                }, 30)
            }
     //獲取對(duì)象屬性
    function getStyle(obj,attr){
        if(obj.currentStyle){
            return obj.currentStyle[attr];//IE
        }
        else{
            return getComputedStyle(obj,false)[attr];//火狐 chrome
        }
    }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89621.html

相關(guān)文章

  • JavaScript是如何工作的: CSSJS 動(dòng)畫(huà)底層原理及如何優(yōu)化它們的性能

    摘要:貝塞爾曲線貝塞爾曲線是應(yīng)用于二維圖形應(yīng)用程序的數(shù)學(xué)曲線。通過(guò)調(diào)整控制點(diǎn),貝塞爾曲線的形狀會(huì)發(fā)生變化。讓我們看看貝塞爾曲線的工作原理。貝塞爾曲線需要四個(gè)值,或者更準(zhǔn)確地說(shuō)它需要兩對(duì)數(shù)字。每對(duì)描述立方貝塞爾曲線控制點(diǎn)的和坐標(biāo)。 這是專(zhuān)門(mén)探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 13 篇。 如果你錯(cuò)過(guò)了前面的章節(jié),可以在這里找到它們: JavaScript 是如何工作的:...

    darcrand 評(píng)論0 收藏0
  • [練習(xí)]利用CSS steps 實(shí)現(xiàn)逐幀動(dòng)畫(huà)

    摘要:網(wǎng)頁(yè)逐幀動(dòng)畫(huà)的實(shí)現(xiàn)方式網(wǎng)頁(yè)中的逐幀動(dòng)畫(huà),大致可分為兩大類(lèi)的實(shí)現(xiàn)方式,分別是使用控制,和單純使用實(shí)現(xiàn),兩者的優(yōu)劣總體概括來(lái)說(shuō)就是動(dòng)畫(huà)可控性更強(qiáng),但開(kāi)銷(xiāo)大,實(shí)現(xiàn)復(fù)雜。 網(wǎng)頁(yè)逐幀動(dòng)畫(huà)的實(shí)現(xiàn)方式 網(wǎng)頁(yè)中的逐幀動(dòng)畫(huà),大致可分為兩大類(lèi)的實(shí)現(xiàn)方式, 分別是使用JS控制,和單純使用CSS實(shí)現(xiàn),兩者的優(yōu)劣總體概括來(lái)說(shuō)就是: JS動(dòng)畫(huà)可控性更強(qiáng),但開(kāi)銷(xiāo)大,實(shí)現(xiàn)復(fù)雜。 CSS動(dòng)畫(huà)實(shí)現(xiàn)相對(duì)JS更簡(jiǎn)單。常見(jiàn)的網(wǎng)...

    RiverLi 評(píng)論0 收藏0
  • 兩種方案開(kāi)發(fā)小程序動(dòng)畫(huà)

    摘要:通過(guò)這種方法產(chǎn)生的動(dòng)畫(huà),無(wú)法按照原有軌跡收回,所以在事件之后設(shè)置了定時(shí)器,定義在執(zhí)行動(dòng)畫(huà)之后,執(zhí)行另一個(gè)動(dòng)畫(huà)。方式存在較多局限性動(dòng)畫(huà)只能執(zhí)行一次,循環(huán)效果需要通過(guò)定時(shí)器完成。 在普通的網(wǎng)頁(yè)開(kāi)發(fā)中,動(dòng)畫(huà)效果可以通過(guò)css3來(lái)實(shí)現(xiàn)大部分需求,在小程序開(kāi)發(fā)中同樣可以使用css3,同時(shí)也可以通過(guò)api方式來(lái)實(shí)現(xiàn)。 指路:小程序animatiom動(dòng)畫(huà)API API解讀 小程序中,通過(guò)調(diào)用api來(lái)...

    MingjunYang 評(píng)論0 收藏0
  • 兩種方案開(kāi)發(fā)小程序動(dòng)畫(huà)

    摘要:通過(guò)這種方法產(chǎn)生的動(dòng)畫(huà),無(wú)法按照原有軌跡收回,所以在事件之后設(shè)置了定時(shí)器,定義在執(zhí)行動(dòng)畫(huà)之后,執(zhí)行另一個(gè)動(dòng)畫(huà)。方式存在較多局限性動(dòng)畫(huà)只能執(zhí)行一次,循環(huán)效果需要通過(guò)定時(shí)器完成。 在普通的網(wǎng)頁(yè)開(kāi)發(fā)中,動(dòng)畫(huà)效果可以通過(guò)css3來(lái)實(shí)現(xiàn)大部分需求,在小程序開(kāi)發(fā)中同樣可以使用css3,同時(shí)也可以通過(guò)api方式來(lái)實(shí)現(xiàn)。 指路:小程序animatiom動(dòng)畫(huà)API API解讀 小程序中,通過(guò)調(diào)用api來(lái)...

    chengjianhua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

LoftySoul

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<