成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

八個(gè)實(shí)用的 NPM 技術(shù)

開發(fā) 前端
這篇文章,跟大家分享8個(gè)NPM的技術(shù),希望這些小技巧能夠幫助到你,我們現(xiàn)在就開始吧。

這篇文章,跟大家分享8個(gè)NPM的技術(shù),希望這些小技巧能夠幫助到你,我們現(xiàn)在就開始吧。

1.復(fù)制內(nèi)容到剪貼板

幾乎所有的網(wǎng)站都有存在,因?yàn)樗梢宰層脩舾奖愕厥褂霉δ堋5钊穗y以置信的是,只需要 6 行有效代碼就可以做到這一點(diǎn)。

const copyToClipboard = (content) => {
const textarea = document.createElement("textarea")

textarea.value = content
document.body.appendChild(textarea)
textarea.select()
document.execCommand("Copy")
textarea.remove()
}

2.比較應(yīng)用程序版本

我經(jīng)常遇到這個(gè)要求。如果某個(gè)APP的版本大于x.y.z,則執(zhí)行A邏輯,否則執(zhí)行B邏輯。

其實(shí)就是比較app版本的問題。

const compareVersion = (version1, version2) => {
const arr1 = version1.split(".")
const arr2 = version2.split(".")
const len1 = arr1.length
const len2 = arr2.length
const minLength = Math.min(len1, len2)

for (let i = 0; i < minLength; i++) {
let diff = parseInt(arr1[i], 10) - parseInt(arr2[i], 10)
if (diff !== 0) return diff
}
return len1 < len2 ? -1 : len1 > len2 ? 1 : 0
}

const v1 = '2.0.1'
const v2 = '2.1.0'
const v3 = '2.1.0'

console.log(compareVersion(v1, v2)) // -1 V1 is less than V2
console.log(compareVersion(v2, v1)) // 1 V2 is greater than v1
console.log(compareVersion(v2, v3)) // 0 V2 equals V3

3.使用URLSearchParams獲取URL的搜索參數(shù)

那是前端開發(fā)人員經(jīng)常做的事情,我們通常使用正則表達(dá)式來做,但現(xiàn)在我們有一個(gè)更簡單的方法......

const getQueryByName = (name) => {
const query = new URLSearchParams(location.search)
return decodeURIComponent(query.get(name))
}
// url: https://medium.com/?name=fatfish&age=100
const name = getQueryByName('name') // fatfish
const age = getQueryByName('age') // 100
const gender = getQueryByName('gender') // null

4.平滑滾動(dòng)到頁面頂部

如何讓頁面平滑滾動(dòng)到頂部?

Codepen地址:https://codepen.io/qianlong/pen/NWYpqZq

const scrollToTop = () => {
const c = document.documentElement.scrollTop || document.body.scrollTop

if (c > 0) {
window.requestAnimationFrame(scrollToTop)
window.scrollTo(0, c - c / 8)
}
}

5.獲取當(dāng)前頁面的滾動(dòng)距離

有時(shí)候不需要平滑滾動(dòng)到頂部,只需要獲取滾動(dòng)條滾動(dòng)到多遠(yuǎn)就可以了。


const getScrollPosition = (el = window) => ({
x: el.pageXOffset !== undefined ? el.pageXOffset : el.scrollLeft,
y: el.pageYOffset !== undefined ? el.pageYOffset : el.scrollTop,
})

getScrollPosition() // { x: 0, y: 215 }

6.判斷當(dāng)前設(shè)備是Android還是iOS

let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1
let isIOS = !!u.match(/\(i[^]+( U)? CPU.+Mac OS X/)

if (isIOS) {
return 0
} else if (isAndroid) {
return 1
} else {
return 2
}
}

getOSType() // 0

7.貨幣格式化

貨幣格式化的方式有很多種,比如這兩種方式。

第一種方式:?

const formatMoney = (money) => {
return money.replace(new RegExp(`(?!^)(?=(\\d{3})+${money.includes('.') ? '\\.' : '$'})`, 'g'), ',')
}

formatMoney('123456789') // '123,456,789'
formatMoney('123456789.123') // '123,456,789.123'
formatMoney('123') // '123'

第二種方式:?

正則表達(dá)式讓我們太頭疼了,不是嗎?

所以我們需要找到一種更簡單的方法來格式化貨幣。

const formatMoney = (money) => {
return money.toLocaleString()
}

formatMoney(123456789) // '123,456,789'
formatMoney(123456789.123) // '123,456,789.123'
formatMoney(123) // '123'

我喜歡這種方式,它簡單易懂。

8.進(jìn)入和退出全屏

?如何將網(wǎng)頁設(shè)置為全屏模式?我在 Codepen 中寫了一個(gè)小例子,Codepen:https://codepen.io/qianlong/pen/wvmJdXb

你可以試試。?


// Enter full screen
function fullScreen() {
let el = document.documentElement
let rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen
//typeof rfs != "undefined" && rfs
if (rfs) {
rfs.call(el)
} else if (typeof window.ActiveXObject !== "undefined") {
let wscript = new ActiveXObject("WScript.Shell")
if (wscript != null) {
wscript.SendKeys("{F11}")
}
}
}
// Exit full screen
function exitScreen() {
let el = document
let cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.mozCancelFullScreen || el.exitFullScreen
//typeof cfs != "undefined" && cfs
if (cfs) {
cfs.call(el)
} else if (typeof window.ActiveXObject !== "undefined") {
let wscript = new ActiveXObject("WScript.Shell")
if (wscript != null) {
wscript.SendKeys("{F11}")
}
}
}
責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2024-08-27 12:18:23

函數(shù)Python

2024-09-30 13:14:01

2022-03-18 21:27:36

Python無代碼

2022-12-16 17:01:15

Web API開發(fā)

2024-03-27 14:06:58

Python代碼開發(fā)

2024-12-27 08:43:17

2023-02-22 14:50:59

技術(shù)AI

2010-09-01 13:55:14

CSS

2022-02-11 09:00:00

技術(shù)債務(wù)數(shù)據(jù)工具

2011-01-13 15:37:25

vSphere備份

2022-08-11 09:00:31

Audio APIWeb

2017-01-05 09:59:45

2012-10-29 11:01:17

2017-04-20 12:51:28

2025-01-08 08:53:05

2022-02-10 10:23:48

軟件開發(fā)商技術(shù)債務(wù)記錄數(shù)據(jù)

2025-02-21 08:30:00

JavaScripES代碼

2021-12-11 23:13:16

Python語言技巧

2020-03-30 09:58:16

IO技術(shù)債務(wù)

2019-12-23 14:47:19

漏洞滲透測試錯(cuò)誤姿勢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产福利免费视频 | 成人在线视频网 | 一区二区三区亚洲精品国 | 日本在线视 | 隔壁老王国产在线精品 | 欧美无乱码久久久免费午夜一区 | 国产一区二区自拍 | 九九综合九九 | 日韩欧美中文 | 亚洲欧美视频一区 | 久久久久久国产 | 亚洲精选一区 | 在线观看视频91 | 伊人久久国产 | 999免费视频| 精品久久久久久 | 国产一区亚洲 | 亚洲精品福利在线 | 国产精品麻 | 久久精品免费观看 | 国产一区二区在线视频 | 成人午夜影院 | 一区二区在线 | 欧美一级片在线看 | 亚洲 欧美 日韩在线 | 日韩精品一区二区三区四区视频 | 99久久精品国产一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 精品亚洲视频在线 | 国产精品久久久久久久免费观看 | 美女天堂 | 青青草视频免费观看 | 亚洲精品一区二区三区中文字幕 | 精品久久久久久久久久久院品网 | 日韩高清一区 | 亚洲精品欧美 | 欧美在线观看免费观看视频 | 国产人成精品一区二区三 | 欧美激情一区二区三区 | 天天综合干 | 极品电影院 |