久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日頭條 焦點資訊 營銷之道 企業(yè)報道 淘寶運營 網(wǎng)站建設 軟件開發(fā) 400電話
  當前位置: 首頁 » 資訊 » 軟件開發(fā) » 正文

運動緩沖效果的封裝函數(shù)示例代碼

放大字體  縮小字體 發(fā)布日期:2018-02-22  來源:企業(yè)800網(wǎng)  作者:新格網(wǎng)  瀏覽次數(shù):463  【去百度看看】
核心提示:之前經(jīng)常寫運動函數(shù),要寫好多好多,后來想辦法封裝起來。(運動緩沖)。本文主要和大家介紹了JS實現(xiàn)運動緩沖效果的封裝函數(shù),涉及JavaScript時間函數(shù)與數(shù)值運算相關操作技巧,需要的朋友可以參考下,希望能幫助到大家。
之前經(jīng)常寫運動函數(shù),要寫好多好多,后來想辦法封裝起來。(運動緩沖)。本文主要和大家介紹了JS實現(xiàn)運動緩沖效果的封裝函數(shù),涉及Javascript時間函數(shù)與數(shù)值運算相關操作技巧,需要的朋友可以參考下,希望能幫助到大家。


function bufferMove(obj, oTarget, fn,ratio = 8) {
  clearInterval(obj.iTimer);
  obj.iTimer = setInterval(function () {
    // 此處設定開關bBtn,假設所有的屬性均已運動完畢true
    var bBtn = true;
    for(var sAttr in oTarget){
      // 獲取當前值,此處兼容透明度的變化
      if(sAttr === 'opacity') {
        var iCur = parseFloat(getStyle(obj, sAttr) * 100);
      } else {
        var iCur = parseInt(getStyle(obj, sAttr));
      }
      // 計算速度,此處可判定方向,如向左或向右,先透明后出現(xiàn)或先出現(xiàn)后透明等
      var iSpeed = (oTarget[sAttr] - iCur) / ratio;
      iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
      // 計算下一次的值
      var iNext = iCur + iSpeed;
      // 賦值給對應樣式
      if(sAttr ==='opacity') {
        obj.style.opacity = iNext / 100;
        obj.style.filter = 'alpha(opacity=' + iNext +')';
      } else {
        obj.style[sAttr] = iNext + 'px';
      }
      // 清除定時器,當前的位置和終點值是否相等,相等則說明結束
      if(iNext !== oTarget[sAttr]) {
        bBtn = false;
      }
    }
    // 如果bBtn的值為true,則說明所有的屬性均已運動完畢,回調函數(shù)fn()
    if(bBtn) {
      clearInterval(obj.iTimer);
      if(fn){
        fn();
      }
    }
  }, 50);
}

以上封裝函數(shù)也可以用于單個屬性,多樣式運動,比如:


bufferMove(obj,{"left":200,"width":400,"opacity":80},fn,8);

就這樣。

相關推薦:

HTML5實現(xiàn)的Loading緩沖效果

javascript 緩沖效果 實現(xiàn)代碼_javascript技巧

JS+CSS實現(xiàn)帶有碰撞緩沖效果的豎向導航條代碼_javascript技巧

以上就是運動緩沖效果的封裝函數(shù)示例代碼的詳細內(nèi)容,更多請關注php中文網(wǎng)其它相關文章!

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規(guī)舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網(wǎng)站首頁 | 關于我們 | 聯(lián)系方式 | 使用協(xié)議 | 版權隱私 | 網(wǎng)站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網(wǎng)站留言 | RSS訂閱 | 吉ICP備11001726號-6
企業(yè)800網(wǎng) · 提供技術支持