博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生js来写获取元素距离顶部距离,以及滚动条滚动指定距离和时间控制
阅读量:5143 次
发布时间:2019-06-13

本文共 2283 字,大约阅读时间需要 7 分钟。

这是我在写vue项目里封装的一个公共js类

里面还有一些其他的方法,一并拿过来了

class Public {    isDesktop(){ //判断是否为pc端        return (window.screen.width > 1023) ? true : false;    }    /*       * formatMoney(s,type)       * 功能:金额按千位逗号分隔      * 参数:s,需要格式化的金额数值.       * 参数:type,判断格式化后的金额是否需要小数位.       * 返回:返回格式化后的数值字符串.     */     formatMoney(s, type) {        if (/[^0-9\.]/.test(s))            return "0.00";        if (s == null || s == "null" || s == "")          return "0.00";        s = s.toString().replace(/^(\d*)$/, "$1.");        s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");        s = s.replace(".", ",");        var re = /(\d)(\d{3},)/;        while (re.test(s))            s = s.replace(re, "$1,$2");        s = s.replace(/,(\d\d)$/, ".$1");        if (type == 0) {          var a = s.split(".");            if (a[1] == "00") {                s = a[0];            }        }        return s;    }        isWeiXin(){ //判断是否是微信浏览器        var ua = window.navigator.userAgent.toLowerCase();        if(ua.match(/MicroMessenger/i) == 'micromessenger'){            return true;        }else{            return false;        }    }    //number :距离   time:时间    ScrollTop(number,time){        let _this = this;        if (!time) {            document.body.scrollTop = document.documentElement.scrollTop = number;            return number;        }        const spacingTime = 20; // 设置循环的间隔时间  值越小消耗性能越高        let spacingInex = time / spacingTime; // 计算循环的次数        let nowTop = document.body.scrollTop + document.documentElement.scrollTop; // 获取当前滚动条位置        let everTop = (number - nowTop) / spacingInex; // 计算每次滑动的距离        let scrollTimer = setInterval(() => {            if (spacingInex > 0) {                spacingInex--;                _this.ScrollTop(nowTop += everTop);            } else {                clearInterval(scrollTimer); // 清除计时器            }        }, spacingTime);    }        getElementToPageTop(el) {//获取元素距离顶部距离        if(el == null){            return        }        let _this = this;        if(el.parentElement) {          return _this.getElementToPageTop(el.parentElement) + el.offsetTop        }        return el.offsetTop    }    }export default Public

  项目里综合起来用是ScrollTop()和getElementToPageTop()配合一起用

类似jquery里的scrollTop()方法

转载于:https://www.cnblogs.com/bobo1/p/10831854.html

你可能感兴趣的文章
[转载]一个人的失败,99%失败于“脾气”
查看>>
【Nowcoder】玩游戏
查看>>
过滤器(Filter)
查看>>
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
springMVC相关—文件上传
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
OpenJudgeP1.10.08:病人排队__(刷题)_水题
查看>>
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>