日常封装函数

// 选项卡封装函数

function tab (id,event,time,isCarrousel) {

// id: 父元素的id值

// event: 事件

// isCarrousel: 值为carrousel,就是自动播放

// time: 延迟的时间

    var oBox1 = document.getElementById(id);

    // 第一个子元素

   var oTab = oBox1.children[0];

    var aBtn1 = oTab.children;

    // 第二个子元素

    var oCon = oBox1.children[1];

    var aDiv1 = oCon.children;

    //下标

    var count = 0;

    // 延迟调用的timer;

    var timer;

     for (var i = 0;i < aBtn1.length;i++) {

        aBtn1[i].index = i;

        //添加事件的地方

        aBtn1[i][event] = function () {

        // 点击的时候,立马切换,onclick

        // 鼠标移入的时候,隔500毫秒,onmouseover

            if (event == 'onclick') {

                count = this.index;

                tab1();

            } else {

                //将this的值赋值给_this

                var _this = this;

                timer = setTimeout(function (){

                    // this -- > btn

                    count = _this.index;

                    tab1();

                },time);

            }

        }

       aBtn1[i].onmouseout = function () {

           clearTimeout(timer);

       }

}

if (isCarrousel == 'carrousel') {

    //自动播放

     var tid = setInterval(nextImg,1000);

     oBox1.onmouseover = function () {

           clearInterval(tid);

     }

     oBox1.onmouseout = function () {

         clearInterval(tid);

         tid = setInterval(nextImg,1000);

      }

     function nextImg () {

          count++;

           if (count == aBtn1.length) {

               count = 0;

           }

           tab1();

        }

    }

     //切换选项卡

     function tab1 () {

      //先清空所有的样式

       //先清空所有的样式

         for (var j = 0;j < aBtn1.length;j++) {

             aBtn1[j].className = '';

             aDiv1[j].style.display = 'none';

        }

       console.log(count);

      // 0 1 2 3

      // count = undefined

      // aBtn1[count]: 获取不到button

        aBtn1[count].className = 'active';

         aDiv1[count].style.display = 'block';

    }

}


// 判断数组里面是否有哪个值

function isFindInArr (arr,value) {

    for (var i = 0;i < arr.length;i++) {

        if (arr[i] == value) {

            return true;

        }

    }

    return false;

}


//设置样式属性

function setStyle (obj,json) {

    for (var key in json) {

        obj.style[key] = json[key];

    }

}


//数组排序去重

arr.sort(function (n1,n2){

    return n2 - n1;

})

for (var i = 0;i < arr.length;i++) {

    if (arr[i] == arr[i+1]) {

        arr.splice(i,1);

        i--;

    }

}


//求随机数

function random (n,m) {

        return parseInt(Math.random() * (m - n) + n);

}


// 求和函数

function sum (arr) {

     var sum1 = 0;

    for (var i = 0;i < arr.length;i++) {

        sum1 = sum1 + arr[i];

    }

    return sum1;

}


//判断浏览器

function browser(){

    if (navigator.userAgent.indexOf('Chrome') != -1) {

        return '谷歌浏览器';

    } else if (navigator.userAgent.indexOf('Firefox') != -1) {

        return '火狐浏览器'

    } else if (navigator.userAgent.indexOf('IE') != -1) {

        return 'IE浏览器';

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,109评论 1 10
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,776评论 0 33
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,854评论 2 17
  • 上班的故事 早上,依然走路去地铁站,在熟悉的地铁站上车、下车,出站的那一刻,忽然意识到,原来已经不需要在这里下车;...
    TrueFar阅读 327评论 2 5
  • Chisel is a collection of LLDB commands to assist debuggi...
    吃蘑菇De大灰狼阅读 841评论 0 9