有人可以帮助一个完整的javascript noob吗?我的google-fu似乎完全缺乏......
我正在尝试转换这个...
var $win = jQuery(window),
w = 0,h = 0,
sgcolour = [],
getWidth = function() {
w = $win.width();
h = $win.height();
};
$win.resize(getWidth).mousemove(function(e) {
sgcolour = [
Math.round(e.pageX/w * 255),
Math.round(e.pageY/h * 255),
150,
1
];
jQuery(document.body).css('background','rgba('+sgcolour.join(',')+')');
}).resize();
从rgba到hsla,x轴为色调,y为饱和度,&其他价值固定。
我认为我已经明显了(改变'rgba',将值从适当的rgba设置为适合hsla的值),但不能在我的生活中找出如何让它输出“% “在所需的价值之后......
我希望我能够为自己解决这个问题,但我不确定我是否对它有足够的了解谷歌正确的问题:/
答案 0 :(得分:1)
int/int
结果为int
(0或1)。
你应该在分割之前相乘:
Math.round(e.pageX * 255 / w),
Math.round(e.pageY * 255 / h),
您不需要Round
该值,因为它的类型为int
。
(e.pageX * 255 / w),
(e.pageY * 255 / h),
答案 1 :(得分:0)
如果它只是一个字符串,你可以连接'%'
,所以我不确定问题是什么:
...
sgcolour = [
Math.round(e.pageX/w * 360),
Math.round(e.pageY/h * 100) + '%',
'50%',
1
];
jQuery("body").css('background','hsla('+sgcolour.join(',')+')');
请注意,这根本不是直接转换。如果您希望它执行此操作,那么我建议您使用当前的rgb
方法,然后将其转换为hsl
。