Javascript / jQuery – 将一系列数字映射到另一个数字范围

前端之家收集整理的这篇文章主要介绍了Javascript / jQuery – 将一系列数字映射到另一个数字范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在其他编程语言(如处理)中,有一个功能可以将数字范围内的数字转换为不同范围内的数字.我想要做的是将鼠标的X坐标转换为例如0和15之间的范围.因此,浏览器的窗口尺寸(对于每个用户而言都不同)可能是,宽1394像素,当前的X坐标可能是563像素,我想将其转换为0到15的范围.

我希望找到一个jqueryjavascript功能,内置这个功能.我可以弄清楚自己做的这个数学,但我宁愿用更简洁和动态的方式来做.

我已经使用以下代码捕获屏幕尺寸和鼠标尺寸:

var $window = $(window);
var $document = $(document);


$document.ready(function() {
    var mouseX,mouseY; //capture current mouse coordinates
    var screenW,screenH; //capture the current width and height of the window
    var maxMove = 10;
    windowSize();

    $document.mousemove( function(e) {
        mouseX = e.pageX; 
        mouseY = e.pageY;

    });

    $window.resize(function() {
        windowSize();
    });

    function windowSize(){
        screenW = $window.width();
        screenH = $window.height();
    }

});

感谢您的任何帮助,您可以提供.

解决方法

如果您希望在Number类中访问此类,可以将其添加为…
Number.prototype.map = function (in_min,in_max,out_min,out_max) {
  return (this - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

…其中您指定要输出的预期输入的“最小”和“最大”值以及要输出的“最小”和“最大”值.如果传入值本身不在in_min和in_max之间,这可能会产生超出范围的值.

使用它像这样:

var num = 5;
console.log(num.map(0,10,-50,50)); // 0
console.log(num.map(-20,-100,100)); // 150

编辑:I’ve made this available as a Gist,所以你不必在今后看看.

猜你在找的jQuery相关文章