前端基本功--js实战6 11.07

2017-11-09  本文已影响0人  多佳小昕

一、时钟

1.第一步:得到现在的时分秒
第二步:秒针一次走6度、分针一次走6度、时针一次走30度。

    <script type="text/javascript">
        window.onload = function () {
           var hour = document.getElementById("h");
           var minute = document.getElementById("m");    
           var second = document.getElementById("s"); 
           // 定时器开始
           var ms  = 0;
           var s = 0;
           var m = 0; 
           var h =0;
           setInterval(function()
           {
                var date = new Date();
                ms = date.getMilliseconds();
                s = date.getSeconds() + ms/1000;//得到秒数 例如 1.3s 加后面的当前时间是因为可以有过度,否则一下子就转过去。
                m = date.getMinutes() + s / 60; //30.5分钟
                h =date.getHours() % 12 + m / 60 ;//9.5小时
                second.style.WebkitTransform = "rotate(" +s*6+ "deg)"//变化属性,旋转deg度。
                minute.style.WebkitTransform = "rotate(" +m*6+ "deg)";
                hour.style.WebkitTransform = "rotate(" +h*30+ "deg)";
                //
           },1000);           

        }
  **兼容问题WebkitTransform谷歌不认识,MozTransform火狐不认识。**

二、短信验证

1.按钮不可用:
btn.disabled = "disabled" || btn.disabled =true;
2.关闭定时器:clearInterval(定时器名称)
3.实例

  <script type="text/javascript">
       window.onload = function () {
         var btn = document.getElementById('btn');
         var m = 3;
         btn.onclick = function(){
           clearInterval(timer);//先清除以防中途点击调用定时器
           this.disabled = true;
           var that = this; //事件的调用者
           var timer = setInterval(send,1000);
           function send(){
             m--;
             if(m>=0){
             that.innerHTML = "还剩余 "+m+"秒";
             }
             else{
               that.innerHTML = "点击重新发送短信";
               that.disabled = false;
               clearInterval(timer); //清除定时器,否则会一直调用ifelse下去
               m = 3;
             }
           }
         }
       }
   </script>

4.因为 button是个双标签 所以要更改他的值, 使用 innerHTML 的,不是value。

三、定时器之setTimeout

1.类似于定时炸弹,只执行一次。
setTimeout("函数",时间) 时间:多长时间后执行
3秒关闭广告总结:设置隐藏函数,当调用定时函数执行隐藏函数。

<script>
function $(id) {
 return document.getElementById(id);
}
function hide(id){
 $(id).style.display = "none";
}
function show(id){
 $(id).style.display = "block";
}
setTimeout(close,2000);
function close(){
 hide("right");
 hide("left");
}
</script>

2.setInterval()和setTimeout()的区别:

四、定时器之小米手机展示实例

  1.  写了三遍,写到头晕。
    

总结:把图片分成两部分,鼠标放在上面时,执行定时器,执行的函数为 满足条件时图片top变化,然后终止定时器。下面相同。鼠标离开时停止上面定时器。

       function $(id) {
                return document.getElementById(id);
            }
            var num = 0;
            var timer = null;
            $("picup").onmouseover = function(){
                clearInterval(timer);//如果不先清除其他定时器,会打架 不知道执行哪一个
               timer = setInterval(function(){
                     num -= 3;//出错,num应该在定时器中一直变化
                    num >= -1070 ? $("pic").style.top = num+"px" : clearInterval(timer);
                },20);
            }
            $("picdown").onmouseover = function(){
                clearInterval(timer);
                timer = setInterval(function(){
                     num += 3;
                    num < 0 ? $("pic").style.top = num+"px" : clearInterval(timer);
                },20);
            }
            $("picdown").parentNode.onmouseout = function(){
                clearInterval(timer);
            }

定时器的时间如果设置为0,不代表立即执行,代表立即插入队列,等所有程序执行完毕再执行!

五、运算符补充

1.一元操作符 ++, --, + ,- +5 -6
2.逻辑操作符 !, &&, ||
3.基本运算符 +, -, *, /, %
4.关系操作符 >, <, >=, <=, ===, ==, !=, !== ;
= 赋值 == 判断 === 全等
5.条件操作符 (三元运算符) ? :
6.赋值运算符 +=, -=, *=, /=, %=
a+=5 a= a + 5
7.逗号运算符 , var a=0,b=0;

1. ()
2. !、-、++、--    (-10)  负号  正号
3.*、/、% 
4. +、-         (10-5)
5. <、<=、<、>=    
6. ==、!=、===、!==、  
7.&& 
8. || 
9.?: 
10. =、+=、-=、*=、/=、%=     赋值   1+2*3 

题:

var a = 1 && 2 && 3;
console.log(a); 3
var b = 0 && 1 && 2;
console.log(b); 0
var c = 1 && 0 && 2;
console.log(c); 0
%=
a+=3
a = a % 3;

六、字符串对象常用方法

  1. +'' " 2+"ab"= "2ab"
  2. String() 转换为字符串
  3. toString(基数) 基数 = 进制
    var txt = 10; txt.toString(2) ; 二进制 结果是1010

unicode编码 是我们字符的唯一表示 。


图片1.png
    <script type="text/javascript">
        window.onload = function () {
        var txt = "abc哈哈哈"
        console.log(txt.length);  
        function panduan(str){
        var len = 0;
        var x = 0;
        for( i = 0 ;i <str.length;i++){
          x= str.charCodeAt(i); 
          if(x>=0 &&x<= 127)
         {
           len++;
         }
          else
         {
           len+=2;
         }
      }
        return len;
    }
        console.log(panduan(txt));
}
    </script>
上一篇 下一篇

猜你喜欢

热点阅读