我想在用戶點擊它時在div上實現反饋。 div會很快褪色成另一種顏色,然後再次回到原來的顏色。哪個更有效,spritesheet或css類
我的第一個選擇是使用spritesheet,在那裏我會改變div的背景位置屬性。實施 部分看起來像這樣:
pos = 0;
function fadeAction(el){
if (pos != 100){
pos += 10;
$(el).css("background-position","0% "+pos+"%");
setTimeout(function(){fadeAction(el);},10);
}else
pos=0;
}
我的第二個選擇是根據顏色陣列來改變背景顏色:
colors = ["#FF00FF","#443322", etc];
i = 0;
function fadeAction(el){
if (pos != 10){
i += 1;
$(el).css("background-color",colors[i]);
setTimeout(function(){fadeAction(el);},10);
}else
i=0;
}
我的第三個選項(其將由於設備被廢棄不兼容)是使用jquery.color。
function fadeAction(el){
$(el).css("background-color",fadeColor);
$(el).animate({
backgroundColor: "#E9E9E9"
}, 150);
}
這兩個方法(報廢第三)將我們最有效的?頁面上會有多個按鈕(div)將使用此功能,它主要用於帶有webkit瀏覽器的移動設備。
你還想過使用css-transitions或動畫嗎? – markusthoemmes
如果只是顏色,爲什麼你需要spritesheet?比CSS類更難以改變。此外,CSS動畫(僅適用於現代瀏覽器)比JS效果更快 – Raptor
我沒有考慮過css轉換,我現在就去閱讀它 – Morne