当前目录: 前端资源
解决:js换算百分比的总和相加不为100%的问题

2018年11月14日  jquery制作,前端资源   

js 相加 相减 结果 余数 做项目时候,后台会提供一段数据,前端需要把数据转换成百分之,即是把单个值除以它们的总和,但是每个值按照这样的思路计算后发现有可能换算成的百分值在相加并不等于100%。 如下图: 每个百分比的值相加只等于98%,这结果是不合理的。   解决思路就是:把剩下最后一个大于0的值用100减去前几个百分比的总和。 如下图: 为了减少误差,保留了2位小数。   注意js在进行加减运算时,可能会有点问题,如: 0.2+0.3=0.500000001 //正确应该是0.5 或者 100-51.12=48.8799999 //正确应该是48.88 遇到这种问题我一般解决方法是: 例如  (Math.round( (100-51.12)*100 ))/100 //结果就是48.88   最终封装方法: per_arry([0,0,0,0,0,42.32,1]); //传入要转化为百分比的数组 fun...

监听手机物理倒退按键

2018年10月25日  wordpress教程   

js 禁止 倒退 监听手机实体退回按键 有些时候我们的一些业务逻辑是需要线性执行,不能退回,要么就重来。 为了防止用户中途倒退,可以使用以下js监听。 history.pushState(null, null, location.href); window.addEventListener('popstate', function(event) { history.pushState(null, null, location.href ); //这里写一旦用户点击物理按键,就会执行回调。 window.location.href='当前页面url' //倒退永远刷新的都是本地页面 alert("我监听到了浏览器的返回按钮事件啦"); }); 本人使用三星s8和iphone 6手机可以成功执行,其他手机未测试

推荐:倒计时

2018年10月18日  jquery制作,wordpress教程   

网上找了很多倒计时的插件,感觉代码有点冗余。也有比较好的插件,但是同时一个页面出现多个倒计时的时候就比较麻烦,这里自己写一个简单的倒计时 (注意:js的settimeout、setinterval方法做的倒计时,时间久了就会有误差。解决方法是设置几分钟后独自刷新按钮)   方式解决办法:意思大概就是设置每隔多少分钟后在重新请求一下后台接口,从某一个时间点在开始倒计时(本人没测试过) setInterval(function () { document.title=++num; run(); },5000); run(); function run() { //解压后,将代码放进去 }     time_down https://www.jb51.net/article/83071.htm

javascript多线程的实现——web worker

2018年10月15日  wordpress教程   

Web Worker兼容ie10以上包括ie10    js 多线程 推荐先看关于进程和线程的关系:http://www.xgllseo.com/?p=6455 背景介绍: js是单线程,在执行js的代码时,总要等待其他代码执行完毕后才能去执行其他代码,所有任务只能在一个线程上完成,一次只能做一件事 。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥 计算机的计算能力。 Web Worker作用就是为js创建子线程,js主线程负责UI交互,子线程负责密集型运算,两线程同时运行互不影响避免阻塞,最终子线程在把 数据结果返回给主线程。   案例: <script> var worker = new Worker('./js/a.js'); //创建一个子进程 worker.postMessage({num:1}); //数据传给子线程 wor...

取代webpack的打包工具——Parcel

2018年10月11日  前端资源   

Parcel 的优势: 1,极速打包时间 Parcel 使用 worker 进程去启用多核编译。同时有文件系统缓存,即使在重启构建后也能快速再编译。 2,将你所有的资源打包 Parcel 具备开箱即用的对 JS, CSS, HTML, 文件 及更多的支持,而且不需要插件。 3,自动转换 如若有需要,Babel, PostCSS, 和PostHTML甚至 node_modules 包会被用于自动转换代码. 4,零配置代码分拆 使用动态 import() 语法, Parcel 将你的输出文件束(bundles)分拆,因此你只需要在初次加载时加载你所需要的代码。 5,热模块替换 Parcel 无需配置,在开发环境的时候会自动在浏览器内随着你的代码更改而去更新模块。 6,友好的错误日志 当遇到错误时,Parcel 会输出 语法高亮的代码片段,帮助你定位问题。 Parcel 的缺点: 1,缺乏插件 新出的打包工具,还在成长...