IE7下Textarea高度100%的解决办法
在IE7下Textarea的height:100%是不生效的,但是只要加上position:absolute;就可以轻松解决这个问题。
转载请注明原文出处《IE7下Textarea高度100%的解决办法》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。
JavaScript位操作及其简单应用
1. <<
左移,即按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
数学意义:在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
1 << 1 //output 2 1 << 2 //output 4
2. >>
右移,即按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。
4 >> 1 //output 2 4 >> 2 //output 1
3. & (AND)
与,即按二进制形式将所有的数字与目标数字按位进行与操作。
常见用法:通常用于二进制的取位操作,例如:一个数字&1,如果结果为0则为偶数,如果为1则为奇数。
2 & 1 //output 0 1 & 1 //output 1
4. | (OR)
或,即按二进制形式将所有的数字与目标数字按位进行或操作。
常见用法:通常用于二进制数字的无条件赋值。例如:一个数字|1,相当于与获取与当前数字最接近的奇数。
1 | 1 //output 1 2 | 1 //output 3
5. ~ (NOT)
非,即按二进制形式将所有数字取反。
常见用法: 位运算 NOT 实质上是对数字求负,然后减 1,因此 25 变 -26。
~1 //output -2
6. ^ (XOR)
异或,即按二进制形式将所有数字与目标数字对比,只有两个数字不相同即只有一个数位存放的是1的时候返回1,如两个数字相同返回0.
常见用法:xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变。可以用于简单的加密,或交互数值操作。
var a = 2, b = 3; a ^= b; b = a ^ b; a ^= b; console.log(a); //output 3 console.log(b); //output 2
转载请注明原文出处《JavaScript位操作及其简单应用》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。
IE7下的li诡异bug一例
IE7下li纵向排列时会出现莫名其妙的空白,一般用overflow,float,border,vertical-align可以消除。
另,如果li不设背景,会引起莫名其妙的hover失效。所以请加background。
转载请注明原文出处《IE7下的li诡异bug一例》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。
学习3ds max的作业
html中button的box-sizing属性
在html中,button元素的box-sizing属性默认是border-box,大部分其他元素(我尚未验证有哪些不是)的box-sizing的属性则都是content-box。
也就是你在设置button的height或width的时候相当于设置的button的content-width+padding+border,也就是IE6之前的那种显示行为。
box-sizing这个属性在css2.1中是无效的,所以,稳妥起见,你的最佳解决办法还是忍着,在定义button样式时特别注意一下。包含border和padding的宽度。
转载请注明原文出处《html中button的box-sizing属性》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。
Arduino Nano配合MQ-2烟雾传感器和LED灯实现烟雾报警器
二话不说先上视频
基本配件组成
Arduino Nano × 1
MQ-2烟雾传感器 × 1
LED灯 × 1
连接线若干
MicroUSB连接线一根
连接方法
将MQ-2传感器两个引脚正极接Nano 3.3伏引脚,负极接地,S引脚接模拟口0。
将LED灯正极接数字口12,负极接地。
实现效果
当烟雾浓度越大时LED闪烁频率越高,烟雾浓度降低时LED闪烁频率降低,烟雾浓度为标准浓度时LED灯关闭。
实现思路
通过digitalWrite(LED, HIGH)和digitalWrite(LED, LOW)改变对LED加电的状态控制LED打开和关闭,改变状态的速度越快闪烁的频率越高。通过analogRead(0)获取MQ-2传感器当前的读数,不断监测当前烟雾浓度,如果超过一定的阈值比如400则提高LED闪烁的频率,随着浓度值的降低同时降低LED灯闪烁的频率。
注意事项
MQ-2传感器要经过预热才能正常工作,开始接入时读数不准,经过几分钟预热后,我本地的正常环境读数为150左右。所以要根据这个读数来控制程序判断的阈值。
代码 //定义LED的高电平接入数字端口 int led = 12; void setup() { //定义当前的端口为输出端口 pinMode(led, OUTPUT); } void loop() { //获取MQ-2传感器模拟端口的读数 int val = analogRead(0); //如果大于400则以10ms的间隔闪烁 if(val > 400){ blinkLED(10); }else if(val > 300 && val < 400){ //如果大于300,小于400则以100ms的间隔闪烁 blinkLED(100); }else if(val < 300 && val > 200){ blinkLED(1000); }else{ //否则关闭 digitalWrite(led, LOW); } } //闪烁函数 unsigned int blinkLED(int period){ unsigned long time = millis(); unsigned int signal; if((time / period) % 2 == 0){ digitalWrite(led, HIGH); }else{ digitalWrite(led, LOW); } }
涉及内容
pinMode, analogRead, digitalWrite
其他
由于Arduino强大的功能,所以实现起来是非常简单的,唯一不足的地方就是晚上又多抽了半盒烟来测试:D
下一步就是要接入Yeelink平台来实现远程的检测,让这个小东西变得更加有意义,能够实现远程监测才是这个烟雾报警器真正能够起作用的时候。敬请期待:)
转载请注明原文出处《Arduino Nano配合MQ-2烟雾传感器和LED灯实现烟雾报警器》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。