Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在鼠标移动和页面加载时更改背景颜色_Javascript_Jquery - Fatal编程技术网

Javascript 在鼠标移动和页面加载时更改背景颜色

Javascript 在鼠标移动和页面加载时更改背景颜色,javascript,jquery,Javascript,Jquery,我发现了一个示例代码,它是当用户移动鼠标时更改主体的背景颜色,但第一次页面是白色的。只有移动鼠标才能看到更改 var $win = $(window), w = 0,h = 0, rgb = [], getWidth = function() { w = $win.width(); h = $win.height(); }; $win.resize(getWidth).mousemove(function(e) { rg

我发现了一个示例代码,它是当用户移动鼠标时更改主体的背景颜色,但第一次页面是白色的。只有移动鼠标才能看到更改

var $win = $(window),
    w = 0,h = 0,
    rgb = [],
    getWidth = function() {
        w = $win.width();
        h = $win.height();
    };

$win.resize(getWidth).mousemove(function(e) {

    rgb = [
        Math.round(e.pageX/w * 255),
        Math.round(e.pageY/h * 255),
        150
    ];

    $(document.body).css('background','rgb('+rgb.join(',')+')');

}).resize();
JSFiddle:


如何在加载时触发?

您可以使用jquery的
$(document).ready()
函数,在加载内容时调用该函数以最初设置随机背景颜色(或您想要的任何颜色)


我更新了您的。您可以使用以下方法:

var $win = $(window),
  w = 0,
  h = 0,
  rgb = [],
  getWidth = function() {
    w = $win.width();
    h = $win.height();
  };

function changeColor(e) {
  rgb = [
    Math.round(e.pageX / w * 255),
    Math.round(e.pageY / h * 255),
    150
  ];

  $(document.body).css('background', 'rgb(' + rgb.join(',') + ')');
}

$win.resize(getWidth).mousemove(function(e) {
  changeColor(e);
}).resize();

$(document).ready(function() {
  var is_loaded = false;
  $(document.documentElement).bind("mouseover", function(e) {
    if (!is_loaded) {
      is_loaded = true;
      changeColor(e);
    }
  });
});

工作示例:

$(文档).ready(函数(){
getRandomColor();
随机mousemovecolor();
});
函数getRandomColor(){

document.body.style.background=“#”+((1body{background:blue;}在cssSorry中,可能我没有正确解释。我想在第一次使用相同的颜色。在这种情况下,当你开始移动光标时,你会从蓝色跳转到粉红色或红色或其他任何颜色。在加载时,我需要在移动事件时使用相同的颜色。可能吗?pageX和pageY?你如何进入pageload?我想你必须设置默认的pageX和pageY。在鼠标移动之前,您无法跟踪鼠标位置是的,我认为加载时无法获取鼠标位置
var $win = $(window),
  w = 0,
  h = 0,
  rgb = [],
  getWidth = function() {
    w = $win.width();
    h = $win.height();
  };

function changeColor(e) {
  rgb = [
    Math.round(e.pageX / w * 255),
    Math.round(e.pageY / h * 255),
    150
  ];

  $(document.body).css('background', 'rgb(' + rgb.join(',') + ')');
}

$win.resize(getWidth).mousemove(function(e) {
  changeColor(e);
}).resize();

$(document).ready(function() {
  var is_loaded = false;
  $(document.documentElement).bind("mouseover", function(e) {
    if (!is_loaded) {
      is_loaded = true;
      changeColor(e);
    }
  });
});