我在此站点的媒体框上具有随机颜色叠加层。将RGB值转换为随机Javascript中的HSL值
http://www.reportageborsen.se/reportageborsen/wordpress/
我从队友一些很好的帮助,在这里计算器至极导致此脚本:
var getRandomInRange = function(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
$('.media-box').each(function() {
var mediaBox = $(this);
var mask = mediaBox.find('.mask');
var hue = 'rgb(' + getRandomInRange(100, 255) + ',' + getRandomInRange(100, 255) + ',' + getRandomInRange(100, 255) + ')';
mask.css({
backgroundColor : hue,
opacity : 0.7
});
mediaBox.hover(function() {
mask.stop(true, true).fadeIn();
}, function() {
mask.stop(true, true).fadeOut();
});
});
小提琴链接:http://jsfiddle.net/b5ZPq/3/
不过,我希望能有更多的更明亮的颜色和更少的灰色。我明白它可以用HSL值而不是RGB值来完成。
所以我试图将CSS背景rgb值转换为hsl值并转换脚本,但我没有得到它的工作。
var getRandomInRange = function(min, max) {
return Math.floor(Math.random() * (max - min + 1), 10) + min;
};
$('.media-box').each(function() {
var mediaBox = $(this);
var mask = mediaBox.find('.mask');
var hue = 'hsl(' + getRandomInRange(0, 360) + ',' + getRandomInRange(70, 100) + '%' + getRandomInRange(45, 55) + '%)';
mask.css({
backgroundColor: hue,
opacity: 0.7
});
mediaBox.hover(function() {
mask.stop(true, true).fadeIn();
}, function() {
mask.stop(true, true).fadeOut();
});
});
http://jsfiddle.net/zolana/Kc9U4/5/ (小提琴,更新工作: http://jsfiddle.net/zolana/Kc9U4/9/ )
(我不是在寻找所有的RGB值转换为HSL值(我知道有脚本与脚本)
我不明白...... HSL中的颜色比RGB空间中的颜色更亮吗? – ppeterka
@ppeterka他们不是......但在某些方面,使用随机值可以更容易地获得更亮的颜色,因为最后一个参数是L表示亮度。 – jeremy
@Nile我对颜色空间很熟悉,并且想要指出问题中措辞不当的错误选择 - 任何人都不确定代表颜色是如何工作的......(并且懒惰地使用google或wiki来查看事后 - 我认为有一些在那里...) – ppeterka