美文网首页
JavaSprict基础4

JavaSprict基础4

作者: MGd | 来源:发表于2017-03-20 10:43 被阅读18次

定时器的认识

  • 定时器:就是可以不断地自动的重复某一个操作的东西。
  • 定时的分类:
    • 1.多次定时器:setInterval()
    • 2.一次定时器:setTimeout()
    • 第一个参数:表示执行的操作,一般就是事件指令
    • 第二个参数表示间隔的时间,但是注意这个时间是毫秒 1s = 1000ms;
  • 定时器的特点:
    对于一般的变量以及函数当使用完成后,系统会自动回收对应的内存,但是定时器当使用完成后系统不会自动回收对应的内存,所以我们需要手动回收。
  • 清空定时器:clearTimeout()
    因为清空定时器的时候,我们不知道是哪一个,但是一个页面中可能有多个定时器,所以我们一般在设置定时器的时候,给定时器制定名称,清空的时候直接清空对应名称的定时器就可以。

定时器的匀速动画

  • 动画原理:就是让实现动画的标签距离某个方向的位置不断地变化,可以通过多次定时器实现不断地变化
  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);
            }
        }
    }
随机数
  • Math.random():可以随机生成一个大于等于0但是需要小于1的数字,不能等于1

使用Js设置值

  • 获取box的样式
  • 如果直接设置我们获取的是行内样式的值,但是有时候我们需要获取在页内设置的值。
  • 在不同的浏览器使用不同的方法获取:
  • 如果是ie或者opera:
  • 如果是普通的浏览器:
  • 综合写法一般是:
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';
        }
    }

相关文章

  • JavaSprict基础4

    定时器的认识 定时器:就是可以不断地自动的重复某一个操作的东西。 定时的分类:1.多次定时器:setInterva...

  • JavaSprict基础

    标识符 什么是标识符? 程序员自己在程序中起的一些“名字”就叫标识符。 标识符的作用? 1.从字面来理解,就是用来...

  • JavaSprict基础2

    循环语句 for循环 语法:for(变量初始化;条件判断; 条件变化){循环体代码(当条件成立true的时候循环执...

  • JavaSprict基础3

    NaN的认识 Not a Numeber NaN属于数值类型,是用来记录一个特殊的数值类型的字符,但是表示不是一个...

  • JavaSprict基础-节点、date

    节点的创建以及添加 创建节点:一般创建一个节点我们通过document.createElement()。 添加节点...

  • JavaSprict基础-字典、事件

    字典的使用 创建一个字典通过key:value对表示数据 字典的中的数据一般是没有顺序的 字典中的数据一般不能重复...

  • JavaSprict基础-事件冒泡

    事件冒泡的认识 什么是事件冒泡:如果一个控件实现了某个事件,那么这个事件会依次把这个事件向上传递给他的父对象,如果...

  • JavaSprict基础-匀速动画抽取

    HTML部分: CSS部分: JS部分:

  • JavaSprict基础-offset scroll clien

    三大家族 offset scroll client 宽高属性offsetWidth:width+padding+b...

  • 老男孩Python文章归纳-不全待补充

    Python学习之路 Day1-基础1 Day2-基础2 Day3-基础3 Day4-基础4 迭代器、生成器、装饰...

网友评论

      本文标题:JavaSprict基础4

      本文链接:https://www.haomeiwen.com/subject/qhsbnttx.html