簡介
spritespin.js 是 jQuery 的插件,是會依照圖片順序輪播圖片造成像是物品 360 度轉動的動畫效果,呈現的樣子可到 官網 看看
或是加上可互動的按鈕,像是這一個例子 http://jsfiddle.net/giniedp/Xaqw5/
下載
從 NPM 下載 https://www.npmjs.com/package/spritespin
載入到 javascript
1 2
| import SpriteSpin from 'spritespin'; var SpriteSpin = require("spritespin");
|
或是使用 CDN
載入前還需要連同 jQuery 一起載入才有作用
1 2
| <script src="https://code.jquery.com/jquery-3.3.1.min.js" type='text/javascript'></script> <script src="https://unpkg.com/spritespin@x.x.x/release/spritespin.js" type='text/javascript'></script>
|
http://spritespin.ginie.eu/samples/#/api-fullscreen
使用
在 HTML 建立一個要應用到 SpriteSpin 元素
1
| <div id='mySpriteSpin'></div>
|
簡單的初始化要產生 360 度動畫的圖像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $("#mySpriteSpin").spritespin({ source: [ "path/to/frame_001.jpg", "path/to/frame_002.jpg", "path/to/frame_003.jpg", "path/to/frame_004.jpg", "path/to/frame_005.jpg", "path/to/frame_006.jpg", "path/to/frame_007.jpg", "path/to/frame_008.jpg", "path/to/frame_009.jpg", "path/to/frame_010.jpg", ], width : 480, height : 327 });
|
基本上這就會看到動畫
http://spritespin.ginie.eu/howto/
用陣列載入圖片
SpriteSpin.sourceArray 是 SpriteSpin 提供的圖片陣列寫法,引用他來節省圖片一張張帶入的步驟,也可以指定初始的圖片要使用哪一張喔!
1 2 3 4
| SpriteSpin.sourceArray('/images/rad_zoom_{frame}.jpg', { frame: [1,34], digits: 3 })
|
http://spritespin.ginie.eu/samples/#/basics-source-array
用 sprite 變換
sprite 圖又稱是 雪碧圖 或 合拼圖
1 2 3 4 5 6 7 8 9 10 11 12 13
| $(function() { $('.spritespin').spritespin({ source: '/images/bike6x6_big.jpg', width: 480, height: 327, frames: 34, framesX: 6, sense: -1 }); })
|
http://spritespin.ginie.eu/samples/#/basics-spritesheet
3D 效果
http://spritespin.ginie.eu/samples/#/basics-3d
除了有物品水平的 360 度轉動的動畫外,還可以再加上一個上下的轉動
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| $(function(){ $('.spritespin').spritespin({ source: SpriteSpin.sourceArray('/images/3d/sample-{lane}-{frame}.jpg', { lane: [0,11], frame: [0,23], digits: 2 }), width: 400, height: 225, lanes: 12, frames: 24, sense: 1, senseLane: -2,
lane: 6, frame: 0, animate: false,
plugins: [ '360', 'drag' ] }); });
|
加入互動按鈕
http://spritespin.ginie.eu/samples/#/basics-source-array
1 2 3 4 5
| <div id='spritespin'></div> <button id='prev'>Prev</button> <button id='toggle'>Toggle</button> <button id='reverse'>Reverse</button> <button id='next'>Next</button>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| var frames = SpriteSpin.sourceArray('/images/rad_zoom_{frame}.jpg', { frame: [1, 34], digits: 3 });
var spin = $('#spritespin'); spin.spritespin({ source: frames, width: 480, sense: -1, height: 327, animate: false });
var api = spin.spritespin("api");
$('#prev').click(function(){ api.stopAnimation(); api.prevFrame(); });
$('#next').click(function(){ api.stopAnimation(); api.nextFrame(); });
$('#toggle').click(function(){ api.toggleAnimation(); });
$('#reverse').click(function(){ api.data.reverse = !api.data.reverse; });
|
刪除動畫
1 2 3 4 5 6
| $("#mySpriteSpin").spritespin("destroy")
$("#mySpriteSpin").html("")
$("#mySpriteSpin").attr("style", "")
|