日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

009_Raphael动画

發(fā)布時(shí)間:2025/5/22 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 009_Raphael动画 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 元素變換

1.1. 唯一推薦的元素變換方法是transform()方法。它有4個(gè)命令:

  • T/t平移
  • s縮放
  • r按角度旋轉(zhuǎn)
  • m變換矩陣

1.2. 旋轉(zhuǎn)和縮放命令的原點(diǎn)坐標(biāo)為可選參數(shù), 默認(rèn)的是該元素的中心點(diǎn)。

1.3. 有一點(diǎn)需要注意, transform方法并不改變?cè)乇旧淼娜魏螤顟B(tài)。無(wú)論你平移多少, transform執(zhí)行后你獲得坐標(biāo)信息仍舊創(chuàng)建元素時(shí)的坐標(biāo), 但是transform的參數(shù)在變化。也就是transform的內(nèi)容你是可以獲得的。無(wú)論你執(zhí)行多少次transform, 它保存著現(xiàn)在狀態(tài)和創(chuàng)建狀態(tài)之間的轉(zhuǎn)換內(nèi)容, 其實(shí)transform就是元素本身的一個(gè)屬性, 而不是去改變?cè)氐钠渌鼘傩浴?/p>

1.4. T是絕對(duì)平移, 而t是相對(duì)平移。絕對(duì), 就是無(wú)論其它什么變換我都不管不顧只會(huì)去執(zhí)行我后面緊跟的參數(shù), 所以T執(zhí)行的是不管你前面轉(zhuǎn)了90度還是沒(méi)轉(zhuǎn), 我都x軸平移100px。而相對(duì), 則是我轉(zhuǎn)了90度, 我的頭部(假設(shè)元素都有一個(gè)頭部)本來(lái)朝右變成了朝下, x軸平移100px, 我們向著x平移100px, 但是實(shí)際是去y軸平移了100px, 因?yàn)槲冶緛?lái)指向x軸的頭部變成了y軸方向。

2. 動(dòng)畫效果

2.1. Raphael的圖形動(dòng)畫效果可以達(dá)到非常平滑的程度, 并且任何屬性都可以, 不論是顏色、透明度、寬度、高度還是其它細(xì)節(jié)。

2.2. Raphael的動(dòng)畫效果方法語(yǔ)法:?Element.animate({動(dòng)畫屬性的鍵值對(duì)}, 動(dòng)畫時(shí)間, 動(dòng)畫類型, 回調(diào)函數(shù));

2.3. 動(dòng)畫類型其實(shí)就是動(dòng)畫過(guò)渡公式, 主要有以下這些類型:

  • "linear"(線性)
  • "<"或"easeIn"或"ease-in"(由慢到快)
  • ">"或"easeOut"或"ease-out"(又快到慢)
  • "<>"或"easeInOut"或"ease-in-out"(由慢到快再到慢)
  • "backIn"或"back-in"(開(kāi)始時(shí)回彈)
  • "backOut"或"back-out"(結(jié)束時(shí)回彈)
  • "elastic"(橡皮筋)
  • "bounce"(彈跳)

3. 例子

3.1. 代碼

<!DOCTYPE html> <html><head><title>Raphael動(dòng)畫</title><script type="text/javascript" src="raphael.js"></script><style type="text/css">#sample-1, #sample-2, #sample-3, #sample-4 {width: 600px;border: 1px solid #aaa;}</style></head><body><h1>元素變換-按角度旋轉(zhuǎn)</h1><div id="sample-1"></div><script type="text/javascript">var paper1 = Raphael("sample-1", 600, 150);paper1.rect(20, 20, 60, 40).attr({"stroke": "red","fill": "green"});// 以矩形中心點(diǎn)旋轉(zhuǎn)90度paper1.rect(120, 20, 60, 40).attr({"stroke": "red"}).transform("r 90");// 以220,60的點(diǎn)旋轉(zhuǎn)90度paper1.rect(220, 20, 60, 40).attr({"stroke": "red"}).transform("r 90, 220,60");</script><h1>元素變換-縮放</h1><div id="sample-2"></div><script type="text/javascript">var paper2 = Raphael("sample-2", 600, 200);paper2.rect(20, 20, 60, 40).attr({"stroke": "red","fill": "green"});// 矩形縮放1.5倍paper2.rect(120, 20, 60, 40).attr({"stroke": "red"}).transform("s 1.5");// 矩形縮放1.5倍后, 再縮放1.5倍paper2.rect(250, 80, 60, 40).attr({"stroke": "red"}).transform("s 1.5 s 1.5");// 以450,110的點(diǎn), 矩形x邊縮放1.5倍, y邊縮放2倍paper2.rect(400, 80, 60, 40).attr({"stroke": "red"}).transform("s 1.5,2, 450,110");</script><h1>元素變換-平移</h1><div id="sample-3"></div><script type="text/javascript">var paper3 = Raphael("sample-3", 600, 200);paper3.rect(20, 20, 60, 40).attr({"stroke": "red","fill": "green"});var rect31 = paper3.rect(20, 20, 60, 40).attr({"stroke": "red"}).transform("r 90 t 100,0");paper3.text(60, 90, "x: " + rect31.attr('x') + ", y: " + rect31.attr('y') + "\ntransform: " + rect31.transform()).attr({'font-size': 11, 'fill': 'blue' });var rect32 = paper3.rect(20, 20, 60, 40).attr({"stroke": "red"}).transform("r 90 T 100,0");paper3.text(230, 50, "x: " + rect32.attr('x') + ", y: " + rect32.attr('y') + "\ntransform: " + rect32.transform()).attr({'font-size': 11, 'fill': 'blue' });</script><h1>動(dòng)畫效果</h1><div id="sample-4"></div><script type="text/javascript">var paper4 = Raphael("sample-4", 600, 200);var rect4 = paper4.rect(20, 20, 60, 40).attr({"fill": "green"});rect4.animate({ transform: "r 90 t 100,0 s 1.5" }, 5000, "bounce", function(){ console.log("finish"); });</script></body> </html>

3.2. 效果圖

總結(jié)

以上是生活随笔為你收集整理的009_Raphael动画的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。