jquery 为什么在HTML终端模拟器中创建颜色命令会创建一个(大部分)白色屏幕?

j1dl9f46  于 6个月前  发布在  jQuery
关注(0)|答案(2)|浏览(70)

我正在制作一个HTML终端,并且已经完成了大部分的样式。我试图添加一个命令,不过,这将改变颜色。你可以运行这些代码片段,并明白为什么我问这个问题,但是当你输入颜色,然后一个颜色,而不是做我试图让它做的事情,它只是给你一个(大部分)白色屏幕。

$('body').terminal({
  iam: function(name) {
    this.echo('Hello, ' + name +
      '. Welcome to Coding Class!');
  },
  echo: function(what) {
    this.echo(what)
  },
  link: function(link) {
    window.location.replace("http://www." + link);
  },
  color: function(color) {
    var body = document.querySelector("body");
    body.className = "test";

    var temp = document.querySelectorAll(".test");

    for (var i = 0; i < temp.length; i++) {
      temp[i].style.color = color;
      temp[i].style.fontSize = "40px";
    }
  }
}, {
  greetings: 'Hi!',
  prompt: 'root> '
})

个字符

zzoitvuj

zzoitvuj1#

要以更简单的方式更改终端的颜色,您还可以执行以下操作:

color: function(clr) {
$("div, ul, li").css("background-color", clr);
},

字符串

ljo96ir5

ljo96ir52#

let $ = jQuery.noConflict();
$('body').terminal({
    iam: function(name) {
        this.echo('Hello, ' + name +
            '. Welcome to Coding Class!');
    },
    echo: function(what) {
        this.echo(what)
    },
    link: function(link) {
        window.location.replace("http://www." + link);
    },
    color: function(color) {
        var body = document.querySelector("body");
        body.classList.add('test');// add class name `test` to body.

        var temp = document.querySelectorAll(".test");

        for (var i = 0; i < temp.length; i++) {
            temp[i].style.setProperty('--background', color);// use set variable instead of `background-color`.
            //temp[i].style.backgroundColor = color;// not recommended
            temp[i].style.fontSize = "40px";
        }
    }
}, {
    greetings: 'Hi!',
    prompt: 'root> '
})

个字符
我向你展示了如何使用add() CSS类名到body
为了在命令color上改变背景颜色,我将代码改为使用setProperty()来设置CSS变量,因为CSS文件本身已经使用了该变量(在.terminal类中),这样更容易。

相关问题