DEMOcss
jsfiddlehtml
用 Matrix
生成一個二維矩陣,經過規定的運動形式,肯定出須要運動的點,觸發特定事件,在特定時間後進行下一輪的運動,肯定運動點,觸發事件,直到全部的點都運動過。git
參數說明github
option
一些配置信息options
說明瀏覽器
返回值說明緩存
Matrix
對象movePoint
函數參數說明:app
mChange.mode
列表中取option
): 肯定動畫效果,能夠不傳,使用默認效果例子:dom
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 }) // 使用默認的動畫效果 move.movePoint(mChange.mode[0]) // 使用 transition 過渡,提供類名便可,eg: .test{transfrom:scale(0);} move.movePoint(mChange.mode[0], { className: 'test' }) // 使用 animation 動畫,好比配合 animation.css 動畫庫 // animation 須要提供兩個類名,進場動畫和出場動畫,同時須要標誌這個是 animation 動畫 move.movePoint(mChange.mode[0], { animate: true, classNameIn: 'animated flipInX', classNameOut: 'animated flipOutX' }) // 使用特定的圖片進行動畫 // 不傳 image 則隨機取傳入的圖片列表中的一張圖片 move.movePoint(mChange.mode[0], { animate: true, classNameIn: 'animated flipInX', classNameOut: 'animated flipOutX', image: urls[0] })
makeMatrixChange
是使用 mChange
提供的方法寫的一個函數,若是有需求自定義矩陣動畫效果,能夠使用提供的方法本身封裝一個運動形式是一個對象,對象下包含信息函數
hitPoint
事件會將當前的運動形式放在回調函數的參數中。好比,定義了 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
函數參數即爲 Matrix
實例初始化的行列信息check
函數參數即爲每一個二維矩陣的點,從 0
開始