亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

一個超級炫的矩陣運動庫,了解一下?

ChristmasBoy / 1743人閱讀

摘要:原理說明用生成一個二維矩陣,通過規(guī)定的運動形式,確定出需要運動的點,觸發(fā)特定事件,在特定時間后進(jìn)行下一輪的運動,確定運動點,觸發(fā)事件,直到所有的點都運動過。一個簡單的栗子函數(shù)參數(shù)即為實例初始化的行列信息函數(shù)參數(shù)即為每個二維矩陣的點,從開始

DEMO

DEMO

jsfiddle

原理說明

Matrix 生成一個二維矩陣,通過規(guī)定的運動形式,確定出需要運動的點,觸發(fā)特定事件,在特定時間后進(jìn)行下一輪的運動,確定運動點,觸發(fā)事件,直到所有的點都運動過。

makeMatrixChange 運動函數(shù)

參數(shù)說明

參一: 需要掛載的節(jié)點

參二: option 一些配置信息

options 說明

row: 需要生成的行數(shù)

col: 需要生成的列數(shù)

images: 圖片列表

nameSpace: 指定類名,不傳則隨機(jī)生成一個

返回值說明

movePoint/Function: 調(diào)用即開始運動

changeImages/Function: 改變原始的圖片列表,主要用于圖片的懶加載,比如為了防止圖片未加載好顯示出來,在瀏覽器緩存好圖片后,更換圖片列表

matrixChange: 原始的 Matrix 對象

movePoint 函數(shù)參數(shù)說明:

參一: 運動形式,可以從 mChange.mode 列表中取

參二(option): 確定動畫效果,可以不傳,使用默認(rèn)效果

例子:

var app = document.getElementById("app")
var urls = ["http://7xse2z.com1.z0.glb.clouddn.com/257084.jpg",
  "http://7xse2z.com1.z0.glb.clouddn.com/257453.jpg",
  "http://7xse2z.com1.z0.glb.clouddn.com/285848.jpg",
  "http://7xse2z.com1.z0.glb.clouddn.com/3455%20%281%29.jpg"]

var move = mChange.makeMatrixChange(app, {
  images: urls,
  row: 7,
  col: 9
})

// 使用默認(rèn)的動畫效果
move.movePoint(mChange.mode[0])

// 使用 transition 過渡,提供類名即可,eg: .test{transfrom:scale(0);}
move.movePoint(mChange.mode[0], {
    className: "test"
})

// 使用 animation 動畫,比如配合 animation.css 動畫庫
// animation 需要提供兩個類名,進(jìn)場動畫和出場動畫,同時需要標(biāo)志這個是 animation 動畫
move.movePoint(mChange.mode[0], {
    animate: true,
    classNameIn: "animated flipInX",
    classNameOut: "animated flipOutX"
})

// 使用特定的圖片進(jìn)行動畫
// 不傳 image 則隨機(jī)取傳入的圖片列表中的一張圖片
move.movePoint(mChange.mode[0], {
    animate: true,
    classNameIn: "animated flipInX",
    classNameOut: "animated flipOutX",
    image: urls[0]
})
擴(kuò)展

makeMatrixChange 是使用 mChange 提供的方法寫的一個函數(shù),如果有需求自定義矩陣動畫效果,可以使用提供的方法自己封裝一個

如果僅僅是不滿足于當(dāng)前的運動形式,也可以自定義運動形式

自定義運動形式

運動形式是一個對象,對象下包含信息

interval/Number: 每次運動的間隔時間

init/Function: 用于初始化配置,在運動前會調(diào)用

check/Function: 用于判斷當(dāng)次運動需要運動的點

next/Function: 每次運動后對于下次運動的配置

end/Function: 用于判斷運動是否結(jié)束,每次運動后都會調(diào)用

其他: 可以配置一些其他的字段,hitPoint 事件會將當(dāng)前的運動形式放在回調(diào)函數(shù)的參數(shù)中。比如,定義了 duration 字段用于生成過渡的事件 dom.style.transition = mode.duration / 1000 + "s"

一個簡單的栗子

{
  interval: "140",
  duration: "1000",
  init: function (row, col) {
    this.row = row
    this.col = col
    this.num = 0
  },
  check: function (i, j) {
    return i + j === this.num
  },
  next: function () {
    this.num++
  },
  end: function () {
    return this.col + this.row + 1 === this.num
  }
}

init 函數(shù)參數(shù)即為 Matrix 實例初始化的行列信息

check 函數(shù)參數(shù)即為每個二維矩陣的點,從 0 開始

github

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/107782.html

相關(guān)文章

  • 開源造輪子:一個簡潔,高效,輕量級,酷炫的不要不要的canvas粒子運動插件

    摘要:一開篇哈哈哈,感謝標(biāo)題黨的蒞臨雖然標(biāo)題有點夸張的感覺,但實際上,插件庫確實是簡潔,高效,輕量級,酷炫酷炫的咯。當(dāng)然,配置不同的參數(shù)值,或許可以得到挺多不同的特效呢上面已經(jīng)演示過標(biāo)配的粒子無序運動啦,下面演示后面兩種。 一:開篇 哈哈哈,感謝標(biāo)題黨的蒞臨~ 雖然標(biāo)題有點夸張的感覺,但實際上,插件庫確實是簡潔,高效,輕量級,酷炫酷炫的咯。廢話不多說,先來看個標(biāo)配例子吧: http://co...

    Anonymous1 評論0 收藏0
  • HTML5中手勢原理分析與數(shù)學(xué)知識的實踐

    摘要:中手勢原理分析與數(shù)學(xué)知識的實踐引言在這觸控屏的時代,人性化的手勢操作已經(jīng)深入了我們生活的每個部分。這篇博文主要是解析了移動端常用手勢的原理,及從前端的角度學(xué)習(xí)過程中所使用的數(shù)學(xué)知識。 HTML5中手勢原理分析與數(shù)學(xué)知識的實踐 引言 在這觸控屏的時代,人性化的手勢操作已經(jīng)深入了我們生活的每個部分。現(xiàn)代應(yīng)用越來越重視與用戶的交互及體驗,手勢是最直接且最為有效的交互方式,一個好的手勢交互,能...

    rollback 評論0 收藏0
  • 朋友,這里有個倉需要你 PR 一下

    摘要:發(fā)現(xiàn)倉庫被了很多次,因此下定決心要好好的把代碼整理一下,方便大家查看代碼以及更加愉快的。雖然這個簡介有點短,但是該篇的目的并不在于讓大家了解這個矩陣動畫,而是想讓大家一起來豐富這個倉庫。 前段時間,發(fā)布了一篇文章:學(xué)不動了,來點有趣的吧。發(fā)現(xiàn) github 倉庫被 frok 了很多次,因此下定決心要好好的把代碼整理一下,方便大家查看代碼以及更加愉快的 Pull Request。 簡介 ...

    roadtogeek 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<