Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
在基于MYSQL的HTML中更改元素的颜色。_Html_Mysql_Ajax - Fatal编程技术网

在基于MYSQL的HTML中更改元素的颜色。

在基于MYSQL的HTML中更改元素的颜色。,html,mysql,ajax,Html,Mysql,Ajax,所以我会尽量给你提供更多的细节,让你了解我的想法。 我正在为我的家做家庭自动化。我有一个web界面,现在我想给它添加一个温度反馈。但它也以温度计或棒的形式存在。例如,如果温度。如果温度高于40摄氏度,则颜色应为红色。如果温度低于40摄氏度,则颜色的梯度应低于红色,低于20表示蓝色。可能吗? 如果是的话,我请求你的帮助 这是不可能的 您可以在图像上使用cssfilter属性, 首先设置一个背景为蓝色的图像,对于最冷的,我们称之为temp.png html将如下所示: ... <body on

所以我会尽量给你提供更多的细节,让你了解我的想法。 我正在为我的家做家庭自动化。我有一个web界面,现在我想给它添加一个温度反馈。但它也以温度计或棒的形式存在。例如,如果温度。如果温度高于40摄氏度,则颜色应为红色。如果温度低于40摄氏度,则颜色的梯度应低于红色,低于20表示蓝色。可能吗?
如果是的话,我请求你的帮助

这是不可能的

您可以在图像上使用css
filter
属性, 首先设置一个背景为蓝色的图像,对于最冷的,我们称之为
temp.png

html将如下所示:

...
<body onload="tempFunc()">
...
<img src="temp.png" id="tempImg" />
...

<input type="hidden" id="tempFromDB" value="50" />

<script>
tempFunc()
{
  x= document.getElementById("tempFromDB").value;
  // expression: x= ?*?/?*/?+?
  document.getElementById("tempImg").style.webkitFilter = "hue-rotate("+x+"deg)";
}
</script>
。。。
...
...
tempFunc()
{
x=document.getElementById(“tempFromDB”).value;
//表达式:x=?*?/?*/?+?
document.getElementById(“tempImg”).style.webkitFilter=“色调旋转(“+x+”度)”;
}
蓝色和红色之间的差异是-250度,经过蓝色、绿色和红色

根据你使用的温度系统,用250度除以你想要的温度差,也许25摄氏度等于0摄氏度,40摄氏度等于250摄氏度,你可以自己做一个算法。 您只需获取数字并在JS表达式中添加负数即可
.webkitFilter=“色调旋转(-“+x+”度)”

例如:

Html温度显示 我不会单独使用html和css:

.box{
位置:相对位置;
背景色:#999;
宽度:150px;
高度:150像素;
}
.框h1{
字体大小:1.2米;
}
.包厢部{
位置:绝对位置;
宽度:30px;
高度:60px;
背景色:红色;
变换:旋转(180度);
底部:0;
利润率:5x10px;
}
.box div:n个类型(2){
左:40px;
}
.box div:n个类型(3){
左:80px;
}
.box div[数据温度=“40”],
.box div[数据温度=“41”],
.box div[数据温度=“42”]{
/*只要你愿意*/
背景色:红色;
高度:计算(20px+40px);
}
.box div[数据温度=“30”],
.box div[数据温度=“31”],
.box div[数据温度=“32”]{
背景颜色:黄色;
高度:计算(20px+30px);
}
.box div[数据温度=“10”],
.box div[数据温度=“11”],
.box div[数据温度=“12”]{
背景颜色:绿色;
高度:计算(20px+10px);
}

温度C0

嘿。非常感谢!非常感谢。但这意味着什么->?x=document.getElementById(“tempFromDB”).value;我怎样才能得到临时工。从使用AJAX的mysql开始,我只是将
x
的值设置为id为
tempFromDB
的隐藏输入的值,这只是一个示例,但是您可以使用AJAX直接或以类似的方式获得它,尽管我认为您不需要AJAX,因为刷新率不会太高。。我怀疑温度会在短时间内急剧下降,你可以在每次调用页面时使用隐藏输入。另外,ajax是一个不同的问题,互联网上充满了答案!试着用谷歌搜索一下,不会让你失望的。另一种方法是使用JS更改div的背景颜色,但我需要创建一种根据温度显示颜色的方法,并将其转换为十六进制或RGB兼容的图形,我现在没有时间,如果这证明有问题,尝试一下,
filter
属性需要一些调整才能在所有浏览器上工作。不难,但需要一些搜索。谢谢。这很有帮助!希望这能奏效!:)