js11时间继电器接线如图:
2、1是时间继电器线圈,接电源。
3、4、5是瞬动触点。
6、7、8和9、10、11是延时触点,接外部延时电路。
盒子 原来的位置 0+ 10 盒子现在的offsetLeft 10
|-5| = 5
这三个函数都是 数学函数
Math
比如说 console.log(Math.ceil(1.01)) 结果 是 2
console.log(Math.ceil(1.9))结果 2
console.log(Math.ceil(-1.3)) 结果 是 -1
比如说 console.log(Math.floor(1.01)) 结果 是 1
console.log(Math.floor(1.9)) 结果 1
console.log(Math.floor(-1.3)) 结果 是 -2
console.log(Math.round(1.01)) 结果 是 1
console.log(Math.round(1.9)) 结果 是 2
匀速动画的原理: 盒子本身的位置 + 步长
缓动动画的原理:盒子本身的位置 + 步长 (不断变化的)
( 缺陷:只能水平方向!随后的“封装运动框架单个属性会进一步改进” )
我们访问得到css 属性,比较常用的有两种:
点语法可以得到 width 属性 和 top属性 ** 带有单位的 。 100px
但是这个语法有非常大的 缺陷**, 不变的。
后面的width 和 top 没有办法传递参数的。
var w = width
box.style.w
最大的优点 : 可以给属性传递参数
我们想要获得css 的样式, box.style.left 和 box.style.backgorundColor
但是它只能得到 行内的样式。
但是我们工作最多用的是 内嵌式 或者 外链式 。
怎么办?
核心: 我们怎么才能得到内嵌或者外链的样式呢?
外部(使用<link>)和内嵌(使用<style>)样式表中的样式(ie和opera)
两个选项是必须的, 没有伪类 用 null 替代
我们这个元素里面的属性很多, left top width ===
我们想要某个属性, 就应该 返回该属性,所有继续封装 返回当前样式的 函数。
千万要记得 每个 的意思 : 那是相当重要
flag在js中一般作为开关,进行判断。
等动画执行完毕再去执行的函数 回调函数
我们怎么知道动画就执行完毕了呢?
很简单 当定时器停止了。 动画就结束了
案例源码:
in运算符也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组或对象。只有第1个操作数的值是第2个操作数的属性名,才会返回true,否则返回false
案例源码:
链接: http://pan.baidu.com/s/1miEvqoo
密码:7fv8运行速度不是很理想,但好像实现了,你多测测看看,或者你再研究看看,肯定有更好的办法哈
<script type="text/javascript">
var arr = '1 2 3 4 5 6 7 8 9 10 11'
var arrSplit = arr.split(' ')
var numA= ''//数字1
var numB= ''//数字2
var numRand1=''//随机索引1
var numRand2=''//随机索引2
var randArr1=''//保存出现过的组
var randArr2=''
var count=''//成功配对计数
var result=''//结果
while (1) {
numRand1 =Math.floor( Math.random()*10+1 )
numRand2 =Math.floor( Math.random()*10+1 )
if(numRand2 != numRand1)
{
if(numRand1 != randArr1[numRand2])
{
numA = arrSplit[numRand1]
}
if(numRand2 != randArr2[numRand1])
{
numB = arrSplit[numRand2]
}
if(numA &&numB)
{
result += numA+','+numB+'<br />'
count++
}
randArr1[numRand1] = numRand2
randArr2[numRand2] = numRand1
}
if(count == 5)
{
break
}
}
document.write(result)
</script>