4.25笔记

去重

// 第一种

    var arr = [1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 5, 5, 5, 6, 6, 8, 8, 8, 9, 9, 7, 7, 10, 10, 55, 66, 88, 55]

    var arr2 = []

    // function norepeat(){

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

    //         var flag=true

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

    //             if(arr[i]==arr2[j]){

    //                 flag=false

    //             }

    //         }

    //         if (flag){

    //             arr2.push(arr[i])

    //         }

    //     }

    //     return arr2

    // }

    // console.log(norepeat(arr));

    // 第二种


 

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

    //    if(arr2.indexOf(arr[i]) == -1){

    //     arr2.push(arr[i])

    //    }

    // }

    // console.log(arr2);

    // 第三种

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

    //     if (arr.indexOf(arr[i]) == arr.lastIndexOf(arr[i])) {

    //         arr2.push(arr[i])

    //     } else {

    //         if (arr2.indexOf(arr[i]) == -1) {

    //             arr2.push(arr[i])

    //         }

    //     }

    // }

    // console.log(arr2);

    // 第四种

    // var obj = {}

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

    //     obj[arr[i]] = 0

    // }

    // for (key in obj) {

    //     arr2.push(Number(key))

    // }

    // console.log(arr2);

冒泡

   var arr = [86, 53, 47, 41, 89, 56, 21, 41, 2, 3, 52, 10]

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

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

            if (arr[j] > arr[j + 1]) {

                var temp = arr[j];

                arr[j] = arr[j + 1];

                arr[j + 1] = temp

            }

        }

    }

    console.log(arr);

3.js动画的封装

把你要用到的常用动画自己封装起来(学会封装的思路),函数的本质就是把具有特点功能的代码封装在一起,所以,我们可以将动画中可变化的量当做参数进行封装。

4.offset、client、scroll系列

(1)、offset系列

offsetLeft:获取元素距离最左边的距离:

     (1)、如果父元素没有定位,距离浏览器最左侧的距离

    (2)、如果父元素有定位,距离父元素最左侧的距离

offsetTop:获取元素距离最上边的距离:

(1)、如果父元素没有定位,距离浏览器最上侧的距离

    (2)、如果父元素有定位,距离父元素最上侧的距离

offsetWidth:获取元素的宽度,包括border及以内,不包括margin

offsetHeight:获取元素的高度,包括border及以内,不包括margin

offsetParent:获取元素的定位父级元素:  

如果元素fixed定位,得到null;  

元素没有fixed情况下如果元素所有的父级元素都没定位,得到body;

元素没有fixed情况下,父级元素有定位,得到离他最近的有定位的父级元素

(2)、scroll系列

scrollTop和scrollLeft:获得的是内容卷曲出去的高度和宽度,当滚动条向下拉时,内容往上走,获得的就是上面跑出盒子范围的那部分高度。滚动条向右拉同理

scrollWidth和scrollHeight:获得元素的实际宽度和高度,在内容没有超出盒子时,获得的是盒子的内部高度和宽度。内容超出盒子时获得的是内容实际应有的高度和宽度。当盒子内部存在滚动条时,获得的高度和宽度不包括滚动条。

根据浏览器兼容性,scroll系列需要写出兼容代码:例如scrollTop:

  var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop

(3)、client系列

clientTop和clientLeft:获得上边框和左边框的宽度。

clientWidth和clientHeight:获取可视范围的宽度高度,即边框内部的,不包括border,包括padding.当盒子内部存在滚动条时,获得的高度和宽度不包括滚动条。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值