JavaSprict基础4

2017-03-20  本文已影响18人  MGd

定时器的认识

定时器的匀速动画

  window.onload = function () {
 1.1获取标签
        var btn = document.getElementById('btn');
        var box = document.getElementById('box');
        
        var timer = null;
//        var begin = 0;//用来记录距离左边的间距
//        var target = 800;//用来记录动画的目标值
2.点击按钮
        btn.onclick = function () {
2.3调用下面抽取的匀速动画
            constant(0,40,800);
        }
抽取匀速动画
        function constant(begin,speed,target) {
定时器会叠加,如果我们上次没有清空,当点击按钮的时候,会再次创建一个新的定时器和原来的定时器叠加所以会越来越快,所以我们需要在点击的时候,清空上一次定时器
            clearInterval(timer);
2.1实现动画,使用定时器
            timer = setInterval(function () {
                begin += speed;
2.11判断终止值
                if(begin >= target){
                    clearInterval(timer);
                    begin = target;
                }
2.2设置距离左边的间距
                box.style.left = begin + 'px';
            },10)
        }
    }

定时器的减速动画

 window.onload = function () {
1.获取标签
        var box = document.getElementById('box');
        var btn = document.getElementById('btn');
        var timer = null;
        var begin = 0;//用来记录距离左边的间距
        var target = 800;//用来记录动画的目标值
2.点击按钮
        btn.onclick = function () {
2.1清空定时器
            clearInterval(timer);
            timer = setInterval(function () {
 //ceil:向上取整,如果是1.1,取出来的是2
//计算出速度
                var speed = Math.ceil((target - begin)*0.2);
 //我们的速度需要向上取整
                begin += speed;
                if (begin >= target){
                    clearInterval(timer);
                    begin = target;
                }
2.2设置距离
                box.style.left = begin + 'px';
            },100)
        }
    }

一次定时器执行多次操作

 window.onload  = function () {
        // 就是使用一次定时器执行多次操作
        var timer = null;
        var count = 5;//用来记录秒数
        var box = document.getElementById('box')
        timer = setTimeout(jumpPage,1000);
        //用来执行定时器的操作的函数
        function jumpPage() {
            clearInterval(timer);
            box.innerHTML = '要在'+count+'秒后跳转'
            count --;
            if(count >= 0){
                timer = setInterval(arguments.callee,1000);
                //函数中调用函数自己,叫做递归函数
                //arguments.callee:相当自己本身。

            }else {//小于0,跳转,清空最后一次定时器
                window.location.href = 'http://baidu.com';
                clearInterval(timer);
            }
        }
    }
随机数

使用Js设置值

function getCssAttr(obj,attr) {
          if(obj.currentStyle){
              return obj.currentStyle[attr];
          }else {
              return window.getComputedStyle(obj,null)[attr];
          }
      }
   如果当我们使用.语法访问不到值,我们可以采用[]来访问.
        alert(getCssAttr(box,'width'));
    }

简单的无限轮播

  window.onload = function () {
        //1.获取标签
        var oul = document.getElementById('oul');
        //2.设置距离左边的间距不断变化,需要时定时器
        var timer = null;
        var begin = 0;//设置距离左边的间距
        timer = setInterval(setLeft,20);
        function  setLeft() {
            begin -= 4;
            if(begin <= -1200){
                begin = 0;
            }
            oul.style.left = begin + 'px';
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读