我想RGB顏色從藍色(rgba(0,0,255)
)上JS mouseenter
轉換爲紅色(rgba(255,0,0)
),逐步。JS:從RGB藍到紅RGB
因此,每次鼠標輸入一個元素時,它都會「增加」它的背景顏色,從藍色到綠色再到紅色。
隨着WIP現場演示:http://codepen.io/enguerranws/pen/ZQOBwe
這是我到目前爲止已經完成:
function onGridDone(){
var gridders = document.querySelectorAll('.gridder');
for(var i = 0; i < gridders.length; i++){
gridders[i].addEventListener('mouseenter', onHover);
}
}
function onHover() {
var currentColor = this.style.backgroundColor,
currentColorArr = currentColor.replace(/[^\d,]/g, '').split(',');
R = currentColorArr[0],
G = currentColorArr[1],
B = currentColorArr[2];
console.log(R,G,B);
if(B > 0) B = B-10;
var indic = 255-B;
G = indic/2;
R = indic;
this.style.backgroundColor = "rgb("+R+","+G+","+B+")";
}
我已經試過許多東西,但基本上,我想我的顏色去從rgba(0,0,255)
,然後rgba(0,255,130)
,然後rgba(255,130,0)
,最後rgba(255,0,0)
(所以,從藍色到綠色,然後從綠色到紅色)。
我知道我可以做多個if/else語句來檢查每個case,但是我只是在徘徊,如果這是一個更有效的方法使用數學?
我不想做任何動畫/轉換。
那麼第一個問題是,你不能依靠瀏覽器來給你回顏色的方式,因爲你設置它。將當前狀態保持在獨立於風格的地方會更可靠(更簡單)。 – Pointy
爲此,最好使用css3轉換或動畫。 – jcubic
@jcubic如何在轉換/動畫上「增加」鼠標懸停時的RGB值? – enguerranws