js
一枚小米渣
this
展开
-
字体随着外层尺寸大小而变化
最近项目新加了个需求,系统文字从接口获取。如登录页面标题,和系统标题。其中发现遇到了一个问题。文字背景是一张图片,图片是自适应缩放的,所以可适应文字的宽度只能是按比列。所以能想到的办法就是标题文字随着外层的宽度变化,字体也跟着变化,显示完整的标题文字。封装文字宽度组件,其中登录的文字后边有图片,并且是可以居中的状态,所以图片也封装到组件。以下方法可以获取文字长度 放入utils文件夹中。当页面宽度变化的时候文字也会跟着变化。原创 2023-01-11 16:26:38 · 231 阅读 · 0 评论 -
nvm安装流程
nvmnvm是管理node版本的工具。一般我们会负责多个项目,不同项目有不同版本的node环境,此时就需要nvm对node版本进行切换处理。1 首先卸载node2 nvm下载 安装包下载地址:https://github.com/coreybutler/nvm-windows/releases,windows系统下载nvm-setup.zip安装包3安装[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hBIxIW7Z-1648518669494)(C:\Us原创 2022-03-29 09:59:03 · 1846 阅读 · 0 评论 -
性能优化:防抖与节流
防抖在滚动事件中需要做个复杂计算或者实现一个按钮的防二次点击操作。这些需求都可以通过函数防抖动来实现。尤其是第一个需求,如果在频繁的事件回调中做复杂计算,很有可能导致页面卡顿,不如将多次计算合并为一次计算,只在一个精确点做操作。防抖和节流的作用都是防止函数多次调用。区别在于,假设一个用户一直触发这个函数,且每次触发函数的间隔小于wait,防抖的情况下只会调用一次,而节流的 情况会每隔一定时间(参数wait)调用函数。function debounce(fn) { let ti原创 2021-12-30 15:14:20 · 728 阅读 · 0 评论 -
jsrender简单封装
一个JavaScript库,允许您定义一次样板结构并重复使用它来动态生成HTML。JsRender为HTML5开发带来了一个新的模板库,它具有无代码标记语法和高性能,不依赖于jQuery,也不依赖于文档对象模型(DOM),支持创建自定义函数并使用纯粹的基于字符串的渲染。如下为自己封装的JsRender模板语法首先在页面引入jsrender.min.js方法一: useTemplate: function (templateId, elementId, data, helpersOrContext,n原创 2021-06-09 14:01:39 · 244 阅读 · 0 评论 -
微任务和宏任务解析
macrotask(宏任务),可以理解是每次执行栈执行的代码就是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行)每一个task会从头到尾将这个任务执行完毕,不会执行其它浏览器为了能够使得JS内部task与DOM任务能够有序的执行,会在一个task执行结束后,在下一个 task执行开始前,对页面进行重新渲染宏任务中可以创建微任务,但是在宏任务中创建的微任务不会影响当前宏任务的执行当一个宏任务队列中的任务全部执行完后,会查看是否有微任务队列,如果有就会优先执行微任务队列中的所有任原创 2021-06-08 16:23:06 · 245 阅读 · 0 评论 -
jquery ajax封装
ajaxCallback: function (jResult, callback) { if (!jResult) { alert("服务器响应异常"); return; } if (jResult.code === undefined) { callback(jResult); } else if (jResul.原创 2021-06-04 15:02:27 · 177 阅读 · 0 评论 -
深拷贝方法
deepclone:function(obj){ var newDate=Array.isArray(obj)?[]:{}; if(obj&&typeof obj==='object'){ for(var k in obj){ if(obj[k]&&typeof obj[k]==='object'){ newDate[k]=deepclone(ob.原创 2021-06-04 14:50:11 · 76 阅读 · 0 评论 -
Promise 异步编程的解决方案
理解promise首先为什么会使用promise?,promise是解决回调地狱的一种方式。异步回调会存在以下问题之前处理异步是通过纯粹的回调函数的形式进行处理很容易进入到回调地狱中,剥夺了函数return的能力问题可以解决,但是过程冗余,难以读懂,维护困难容易踏入回调地狱-嵌套层次深,不好维护promisepromise是一个对象(构造函数),对象和函数的区别就是可以保存状态,函数不可以,除了闭包并未剥夺函数return能力,因此无需层层传递回调函数代码风格,易理解,便维护多个异步原创 2021-03-25 16:19:43 · 326 阅读 · 0 评论 -
小数点相加方法
小数相加function addNum(num1,num2){var r1,r2,m; try{ r1=num1.toString().split(".")[1].length; } catch(e){ r1=0; } try{ r2=num2.toString().split(".")[1].length; } catch(e){ r2=0; } m=Math.pow原创 2021-03-19 14:55:29 · 1078 阅读 · 0 评论