天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Mootools 1.2教程 Fx.Morph、Fx選項和Fx事件

我們將學習如何使用Fx.Morph(它從本質上可以讓你同時漸變多個樣式表屬性),然后我們再檢查一下應用到Fx.Tween和Fx.Morph的一些Fx選項,最后我們將看看如何使用Fx事件,譬如“onComplete”和“onStart”。通過這些選項和事件,我們可以獲得更好的控制權來控制形變動畫。
Fx.Morph
創建一個新的Fx.Morph
初始化一個新的形變和創建一個新的漸變很類似,除了你要指定多個樣式屬性以外。
參考代碼:
復制代碼 代碼如下:
// 首先,把我們的元素賦值給一個變量
var morphElement = $('morph_element');
// 現在,我們創建一個新的形變
var morphObject = new Fx.Morph(morphElement);
// 現在我們可以設置樣式屬性,就像Fx.Tween一樣
// 不過我們這里可以設置多個樣式屬性
morphObject.set({
'width': 100,
'height': 100,
'background-color': '#eeeeee'
});
// 我們也可以像啟動一個漸變一樣來啟動我們的形變
// 不過我們這里要同時放置多個屬性值
morphObject.start({
'width': 300,
'height': 300,
'background-color': '#d3715c'
});

上面這些就是全部的內容了,包括創建、設置和啟動一個形變。
為了讓這個更合理一些,我們應該創建我們的變量,把我們的函數獨立出來,并創建一些事件來控制這這個事情:
參考代碼:
復制代碼 代碼如下:
var morphSet = function(){
// 這里我們可以像Fx.Tween一樣設置樣式屬性
// 不過在這里我們可以同時設置多個樣式屬性
this.set({
'width': 100,
'height': 100,
'background-color': '#eeeeee'
});
}
var morphStart = function(){
// 我們也可以像啟動一個漸變一樣啟動一個形變
// 不過現在我們可以同時設置多個樣式屬性
this.start({
'width': 300,
'height': 300,
'background-color': '#d3715c'
});
}
var morphReset = function(){
// 設置為最開始的值
this.set({
'width': 0,
'height': 0,
'background-color': '#ffffff'
});
}
window.addEvent('domready', function() {
// 首先,把我們的元素賦值給一個變量
var morphElement = $('morph_element');
// 現在,我們創建我們的形變
var morphObject = new Fx.Morph(morphElement);
// 在這里我們給按鈕添加點擊事件
// 并且綁定morphObject和這個函數
// 從而可以在上面的函數中使用"this"
$('morph_set').addEvent('click', morphSet.bind(morphObject));
$('morph_start').addEvent('click', morphStart.bind(morphObject));
$('morph_reset').addEvent('click', morphReset.bind(morphObject));
});

參考代碼:
復制代碼 代碼如下:
<div id="morph_element"></div>
<button id="morph_set">Set</button>
<button id="morph_start">Start</button>
<button id="morph_reset">reset</button>

SetStartreset
Fx選項(Options)
下面的選項都可以被Fx.Tween和Fx.Morph接受。它們都非常容易實現,而且可以給你非常多的控制權來控制你的效果。要使用這些選項,請使用下面的語法:
參考代碼:
復制代碼 代碼如下:
// 建立你的漸變或者形變
// 然后在大括號{ }之間設置你的選項
var morphObject = new Fx.Morph(morphElement, {
// 首先是選項的名字
// 然后后面跟一個冒號(:)
// 然后定義你的選項
duration: 'long',
transition: 'sine:in'
});

fps(每秒幀數,frames per second)
這個選項決定了這個動畫每秒的幀數。默認值是50,可以接受數字和值為數字的變量。
參考代碼:
復制代碼 代碼如下:
// 建立你的漸變或者形變
// 然后在大括號{ }之間設置你的選項
var morphObject = new Fx.Morph(morphElement, {
fps: 60
});
// 或者這樣
var framesPerSecond = 60;
var tweenObject = new Fx.Tween(tweenElement, {
fps: framesPerSecond
});

unit(單位)
這個選項設置了數字的單位。例如,你的100是指100個像素(px)、百分比還是em?
參考代碼:
復制代碼 代碼如下:
// 建立你的漸變或者形變
// 然后在大括號{ }之間設置你的選項
var morphObject = new Fx.Morph(morphElement, {
unit: '%'
});

link(連接)
link選項提供了一種方式可以讓你管理多個啟動效果的函數調用。例如,如果你有一個鼠標移上去(mouseover)的效果,你是希望每次用戶移上去都啟動這個效果嗎?或者是,如果一個人把鼠標移上去兩次,它應該忽略第二個響應還是應該把它們串連起來,然后等第一次調用完成以后再第二次調用這個效果?link又三個設置:
“ignore”(默認)――在一個效果沒有完成之前忽略任何啟動新效果的調用
“cancel”――如果有另外一個效果調用,則放棄當前的效果,轉而處理新的效果調用
“chain”――鏈可以讓你把效果像“鏈條”一樣把效果連接起來,把這些調用進行堆棧,然后逐一調用這些效果,直到完成
參考代碼:
復制代碼 代碼如下:
// 建立你的漸變或者形變
// 然后在大括號{ }之間設置你的選項
var morphObject = new Fx.Morph(morphElement, {
link: 'chain'
});

duration(持續時間)
duration可以讓你定義這個動畫的持續時間。持續事件和速度是不一樣的,因此如果你想讓一個對象在一秒內移動100個像素,那么它將比一個每秒移動1000個像素的對象要慢。你可以輸入一個數字(以毫秒為單位)、一個值為數字的變量或者三個快捷方式:
“short”=250ms
“normal”=500ms(默認)
“long”=1000ms
參考代碼:
復制代碼 代碼如下:
// 建立你的漸變或者形變
// 然后在大括號{ }之間設置你的選項
var morphObject = new Fx.Morph(morphElement, {
duration: 'long'
});
// 或者這樣
var morphObject = new Fx.Morph(morphElement, {
duration: 1000
});

transition(過渡效果)
最后一個選項:transition,可以讓你決定過渡類型。例如,它是不是一個平滑的過渡或者它應該先慢慢開始然后加速直到結束。看看這些在MooTools的核心庫里可以用的過渡效果:
參考代碼:
復制代碼 代碼如下:
var tweenObject = new Fx.Tween(tweenElement, {
transition: 'quad:in'
});

注意:第一個過渡條在開始時觸發了一個紅色的醒目效果,在結束時觸發了一個橙色的醒目效果。看看下面是怎么使用Fx的事件的。
這上面30個過渡類型可以分成十組:
Quad
Cubic
Quart
Quint
Expo
Circ
Sine
Back
Bounce
Elastic
每一個組都有三個選項:
Ease In
Ease Out
Ease In Out
Fx的事件
Fx的事件使得你在動畫效果的執行過程中,在不同的點執行一些代碼。在創建用戶反饋信息時這會很有用,這也給了你另一層控制權來控制你的漸變和形變:
onStart――當Fx開始時觸發
onCancel――當Fx取消時觸發
onComplete――當Fx完成時觸發
onChainComplete――當Fx鏈完成時觸發
當你建立一個漸變或者形變時,你可以設置這其中的一個事件,就像你設置一個或多個選項一樣,不過不是設置一個值,而是設置一個函數:
參考代碼:
復制代碼 代碼如下:
// 首先我們把一個新的Fx.Tween賦值給一個變量
// 然后定義我們要漸變的元素
quadIn = new Fx.Tween(quadIn, {
// 這里是一些選項
link: 'cancel',
transition: ‘quad:in',
// 這里是一些事件
onStart: function(passes_tween_element){
// 這些事件都會傳遞漸變的對象
// 因此當動畫開始時
// 這里我們調用一個"highlight"效果
passes_tween_element.highlight('#C54641');
},
// 注意這個逗號是怎樣始終出現在每個事件和選項之間的
// 但是最后一個事件或者選項后面沒有
onComplete: function(passes_tween_element){
// 在結束時,我們再應用一個highlight效果
passes_tween_element.highlight('#C54641');
}
});

示例
為了生成上面的變形代碼,我們可以用一種我們在這個系列的教程中還沒有見過的方式來重用我們的函數。這上面所有的變形元素都使用了兩個函數,一個當鼠標進入時漸變淡出,另外一個在當鼠標離開時漸變返回:
參考代碼:
復制代碼 代碼如下:
// 這是我們在鼠標進入時調用的函數
// 寬度漸變到700px
var enterFunction = function() {
this.start('width', '700px');
}
// 這是我們在鼠標離開時調用的函數
// 寬度漸變回300px
var leaveFunction = function() {
this.start('width', '300px');
}
window.addEvent('domready', function() {
// 這里我們把一些元素賦值給變量
var quadIn = $('quadin');
var quadOut = $('quadout');
var quadInOut = $('quadinout');
// 然后我們創建三個漸變元素
// 分別對應上面的三個變量
quadIn = new Fx.Tween(quadIn, {
link: 'cancel',
transition: Fx.Transitions.Quad.easeIn,
onStart: function(passes_tween_element){
passes_tween_element.highlight('#C54641');
},
onComplete: function(passes_tween_element){
passes_tween_element.highlight('#E67F0E');
}
});
quadOut = new Fx.Tween(quadOut, {
link: 'cancel',
transition: 'quad:out'
});
quadInOut = new Fx.Tween(quadInOut, {
link: 'cancel',
transition: 'quad:in:out'
});
// 現在我們添加鼠標進入和鼠標離開事件
// 注意.addEvents的使用
// 則和.addEvent的使用類似
// 不過你可以通過下面的模式添加多個事件
$('quadin').addEvents({
// 首先,你要說明是什么事件,并把事件用單引號引起來
// 然后后面跟一個冒號(:)
// 最后放置你的函數
// 在這個例子中,函數banding到這個漸變對象
'mouseenter': enterFunction.bind(quadIn),
'mouseleave': leaveFunction.bind(quadIn)
});
$('quadout').addEvents({
// 注意我們這里是怎樣重復使用這個函數的
'mouseenter': enterFunction.bind(quadOut),
'mouseleave': leaveFunction.bind(quadOut)
});
$('quadinout').addEvents({
// 我們這里也使用了那些同樣的函數
// 不過每次我們都應用一個事件到不同的元素
// 并且綁定不同的漸變
'mouseenter': enterFunction.bind(quadInOut),
'mouseleave': leaveFunction.bind(quadInOut)
});

更多學習……

你可以通過Fx庫里面的工具來獲得對效果更細致的控制權。請一定要閱讀一下文檔中的Fx這一節,還有tween、morph和transitions。

下載一個包含你開始所需要的東西的zip包

包括這個頁面上的實例,MooTools 1.2核心庫,一個外部的JavaScript文件,一個外部的CSS文件或者一個簡單的html文件。

JavaScript技術Mootools 1.2教程 Fx.Morph、Fx選項和Fx事件,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产成人无码视频一区二区三区 | 久久青草免费线观最新 | 国产成人精品综合在线 | 偷偷鲁青春草原视频 | 日本熟妇乱妇熟色在线电影 | 夫外出被公侵犯日本电影 | 99久久婷婷国产麻豆精品电影 | 人妻兽虐曲| 性色AV乱码一区二区三区视频 | V8成品人视频 | 亚洲爆乳无码精品AAA片蜜桃 | 亚洲91av | 超碰久久国产vs | 久久综合伊人 | 蜜臀久久99精品久久久久久做爰 | 郭德纲于谦2012最新相声 | 娇妻归来在线观看免费完整版电影 | 欧美日韩亚洲一区二区三区在线观看 | 四川少妇大战4黑人 | 古代荡乳尤物H妓女调教 | 纯肉巨黄H爆粗口男男分卷阅读 | 色狠狠AV老熟女 | 9277在线观看免费高清完整版 | 性VIDEOSTV另类极品 | 成人片在线播放 | 日韩精品一区VR观看 | 日本漫画母亲口工子全彩 | 区一区二视频免费观看 | 成年人免费在线视频观看 | 亚洲福利天堂网福利在线观看 | 国产精品无码AV天天爽人妻蜜桃 | 九九热在线视频观看这里只有精品 | 麒麟色欧美影院在线播放 | gayxxxxgay呻吟受日本 | 美女裸露胸部100%无遮挡 | 国产女高清在线看免费观看 | 国产AV无码成人黄网站免费 | 亚洲国产中文字幕在线视频 | 小莹的性荡生活 | 成人特级毛片 | 在线视频 国产精品 中文字幕 |