自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)化你的工作,7 種常用的 JS 代碼片段

開發(fā) 前端
日常開發(fā)中,我們經(jīng)常會(huì)用到很多通用的 JS 代碼,比如:復(fù)制內(nèi)容、從 URL 中獲取指定參數(shù) 等這些代碼通常有固定實(shí)現(xiàn),即:代碼片段。

Hello,大家好,我是 Sunday。

日常開發(fā)中,我們經(jīng)常會(huì)用到很多通用的 JS 代碼,比如:復(fù)制內(nèi)容、從 URL 中獲取指定參數(shù) 等

這些代碼通常有固定實(shí)現(xiàn),即:代碼片段。

所以,為了方便大家的開發(fā),今天咱們就來(lái)看看常用的 7 種代碼片段

01:將內(nèi)容復(fù)制到剪貼板

通過(guò)按鈕,將指定 dom 中的內(nèi)容復(fù)制到用戶的剪貼板

const copyToClipboard = (content) => {
  const textarea = document.createElement("textarea")
  
  textarea.value = content
  document.body.appendChild(textarea)
  textarea.select()
  document.execCommand("Copy")
  textarea.remove()
}

02:使用URLSearchParams獲取URL的搜索參數(shù)

這應(yīng)該是一個(gè)非常常見(jiàn)的操作,之前經(jīng)常會(huì)使用 正則來(lái)完成,現(xiàn)在有了更簡(jiǎn)單的方式:

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

03:平滑滾動(dòng)至頁(yè)面頂部

const scrollToTop = () => {
  const c = document.documentElement.scrollTop || document.body.scrollTop
  
  if (c > 0) {
    window.requestAnimationFrame(scrollToTop)
    window.scrollTo(0, c - c / 8)
  }
}

04:獲取當(dāng)前頁(yè)面滾動(dòng)距離

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 }

05:判斷當(dāng)前設(shè)備是Andoird還是iOS

function getOSType() {
  let u = navigator.userAgent,
    app = navigator.appVersion
  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

06:格式化貨幣

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

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

07:進(jìn)入和退出全屏

// 進(jìn)入全屏
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}")
    }
  }
}
// 退出全屏
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é)任編輯:武曉燕 來(lái)源: 程序員Sunday
相關(guān)推薦

2024-05-28 00:03:00

JavaScript開發(fā)

2025-04-03 04:11:00

JS代碼URL

2019-11-14 15:30:34

JavaScript代碼前端

2020-05-13 21:09:10

JavaScript前端技術(shù)

2018-05-10 15:35:03

前端代碼圖像

2011-07-14 10:07:19

PHP

2021-10-31 07:36:17

前端JavaScript編程

2014-11-11 14:52:28

程序員工程師

2021-03-10 09:20:31

await代碼前端

2023-09-03 16:46:09

Pandas工具

2012-06-18 15:18:32

JS

2020-12-16 08:33:57

JS函數(shù)效率

2020-09-16 06:16:55

代碼編碼開發(fā)

2020-01-06 10:01:12

JavaScript瀏覽器HTML

2020-09-16 11:10:33

Linux命令文件

2016-10-09 11:03:41

Javascript模塊化Web

2022-07-13 15:46:57

Python數(shù)據(jù)可視化代碼片段

2024-12-11 08:20:57

設(shè)計(jì)模式源碼

2024-04-28 11:22:18

2019-08-07 16:50:38

SQLjoingroup
點(diǎn)贊
收藏

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