电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript常用工具函數(shù)匯總(瀏覽器環(huán)境)

瀏覽:71日期:2023-10-13 13:49:48

前端業(yè)務(wù)中比較常用的JavaScript工具函數(shù),瀏覽器環(huán)境常用,可直接拷貝在項(xiàng)目里使用。這里統(tǒng)一整理,方便查閱,本文章會(huì)持續(xù)更新。

一、file轉(zhuǎn)為base64

/** * file轉(zhuǎn)為base64 * @param {*} file file對(duì)象 * @param {*} callback */export const fileToDataURL = (file, callback) => { let freader = new FileReader(); freader.readAsDataURL(file); freader.onload = function (e) { callback(e.target.result); }}

二、blob流轉(zhuǎn)換為base64

/** * blob流轉(zhuǎn)換為base64 * @param {*} blob blob對(duì)象 * @param {*} callback */export const blobToDataURL = (blob, callback) => { let freader = new FileReader(); freader.readAsDataURL(blob); freader.onload = function (e) { callback(e.target.result); }}

三、base64轉(zhuǎn)換為blob

/** * base64轉(zhuǎn)換為blob * @param {*} dataurl base64 */export const dataURLtoBlob = (dataurl) => { let arr = dataurl.split(’,’), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime });}

四、base64轉(zhuǎn)換為file,IE低版本不兼容

/** * 將base64轉(zhuǎn)換為file,IE低版本不兼容 * @param {*} dataurl base64 * @param {*} filename 文件名 */export const dataURLtoFile = (dataurl, filename) => { let arr = dataurl.split(’,’), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], filename, { type: mime });}

五、圖片url轉(zhuǎn)化成base64

/** * 圖片url轉(zhuǎn)化成base64 * @param {*} url 圖片url * @param {*} callback * @param {*} outputFormat 圖片格式 */export const imgUrlToDataURL = (url, callback, outputFormat) => { let canvas = document.createElement(’canvas’), ctx = canvas.getContext(’2d’), img = new Image; img.crossOrigin = ’Anonymous’; img.src = url + '?timeStamp=' + new Date().getTime(); img.onload = function () { canvas.height = img.height; canvas.width = img.width; // ctx.drawImage(img, 0, 0); ctx.drawImage(this, 0, 0, img.width, img.height); let dataURL = canvas.toDataURL(outputFormat || ’image/png’); // callback.call(this, dataURL); callback && callback(dataURL) canvas = null; };}

六、獲取窗口尺寸

export function getViewportSize() { let w = 0; let h = 0; if (window.innerWidth) { w = window.innerWidth h = window.innerHeight } else if (document.body && document.body.clientWidth) { w = document.body.clientWidth h = document.body.clientHeight } else if (document.documentElement && document.documentElement.clientWidth) { w = document.documentElement.clientWidth h = document.documentElement.clientHeight } return { w, h }}

七、瀏覽器環(huán)境檢測(cè)

const ua = window.navigator.userAgent.toLowerCase()// 是否微信export const isWx = () => ua.match(/MicroMessenger/i) == ’micromessenger’// 是否ipadexport const isIpad = () => ua.indexOf(’ipad’) > -1// 是否iphoneexport const isIphone = () => ua.indexOf(’iphone os’) > -1// 是否ucexport const isUc = () => ua.indexOf(’ucweb’) > -1// 是否windows pcexport const isWindows = () => ua.indexOf(’windows’) > -1// 是否androidexport const isAndroid = () => ua.indexOf(’android’) > -1 || ua.indexOf(’adr’) > -1// 是否iosexport const isIos = () => /(iphone|ipod|ipad|ios)/i.test(ua)// 是否qq瀏覽器export const isQq = () => ua.indexOf(’mqqbrowser’) > -1 && ua.indexOf(’ qq’) < 0// 是否qq內(nèi)置瀏覽器export const isQQInstalled = () => ua.indexOf(’ qq’) > -1 && ua.indexOf(’mqqbrowser’) < 0

八、開啟與關(guān)閉全屏

// 開啟全屏export function launchFullscreen(element) { element = element || document.documentElement if (element.requestFullscreen) { element.requestFullscreen() } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen() } else if (element.msRequestFullscreen) { element.msRequestFullscreen() } else if (element.webkitRequestFullscreen) { element.webkitRequestFullScreen() }}// 關(guān)閉全屏export function exitFullscreen() { if (document.exitFullscreen) { document.exitFullscreen() } else if (document.msExitFullscreen) { document.msExitFullscreen() } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen() } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen() }}

九、返回頂部/指定位置,實(shí)現(xiàn)滾動(dòng)動(dòng)畫

/** * @param {*} number 距離頁面頂部的距離 * @param {*} time 滾動(dòng)所需時(shí)間 單位ms */const scrolling = (number = 0, time) => { if (!time) { document.body.scrollTop = document.documentElement.scrollTop = number; return number; } // 設(shè)置循環(huán)的間隔時(shí)間 值越小消耗性能越高 const spacingTime = 20; // 計(jì)算循環(huán)的次數(shù) let spacingInex = time / spacingTime; // 獲取當(dāng)前滾動(dòng)條位置 let nowTop = document.body.scrollTop + document.documentElement.scrollTop; // 計(jì)算每次滑動(dòng)的距離 let everTop = (number - nowTop) / spacingInex; let scrollTimer = setInterval(() => { if (spacingInex > 0) { spacingInex--; ScrollTop(nowTop += everTop); } else { clearInterval(scrollTimer); // 清除計(jì)時(shí)器 } }, spacingTime);};// 滾動(dòng)到距離頁面頂部500px的位置 動(dòng)畫時(shí)間為300ms// scrolling(500, 300);

十、實(shí)現(xiàn)錨點(diǎn)滾動(dòng)

// 運(yùn)用了H5的scrollIntoView方法,這是一個(gè)實(shí)驗(yàn)中的功能,IE 8以下、Safari 6以下、Safari on iOS 5以下不兼容const scrollToAnchor = (anchorName) => { if (anchorName) { // 找到錨點(diǎn) let anchorElement = document.getElementById(anchorName); // 如果對(duì)應(yīng)id的錨點(diǎn)存在,就跳轉(zhuǎn)到錨點(diǎn) if (anchorElement) { anchorElement.scrollIntoView({behavior: ’auto’, // 定義動(dòng)畫過渡效果, 'auto'或 'smooth' 之一。默認(rèn)為 'auto'block: ’start’, // 定義垂直方向的對(duì)齊, 'start', 'center', 'end', 或 'nearest'之一。默認(rèn)為 'start'inline: ’nearest’, // 定義水平方向的對(duì)齊, 'start', 'center', 'end', 或 'nearest'之一。默認(rèn)為 'nearest' }); } }}

以上就是JavaScript常用工具函數(shù)匯總(瀏覽器環(huán)境)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript 工具函數(shù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 专业深孔加工_东莞深孔钻加工_东莞深孔钻_东莞深孔加工_模具深孔钻加工厂-东莞市超耀实业有限公司 | arch电源_SINPRO_开关电源_模块电源_医疗电源-东佑源 | 北京软件开发_软件开发公司_北京软件公司-北京宜天信达软件开发公司 | 净化工程_无尘车间_无尘车间装修-广州科凌净化工程有限公司 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | 长城人品牌官网| 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 瓶盖扭矩仪(扭力值检测)-百科| 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 烘干设备-热泵烘干机_广东雄贵能源设备有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 交通气象站_能见度检测仪_路面状况监测站- 天合环境科技 | 踏板力计,制动仪,非接触多功能速度仪,逆反射系数测试仪-创宇 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 森旺-A级防火板_石英纤维板_不燃抗菌板装饰板_医疗板 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 |