将“%”输入javascript输出

时间:2012-11-30 21:16:57

标签: javascript jquery css

有人可以帮助一个完整的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();

Here on jsfiddle

从rgba到hsla,x轴为色调,y为饱和度,&其他价值固定。

我认为我已经明显了(改变'rgba',将值从适当的rgba设置为适合hsla的值),但不能在我的生活中找出如何让它输出“% “在所需的价值之后......

我希望我能够为自己解决这个问题,但我不确定我是否对它有足够的了解谷歌正确的问题:/

2 个答案:

答案 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