当前位置: 首页 > news >正文

一站式网站建设电话seo建站系统

一站式网站建设电话,seo建站系统,成都科技网站建设费,官方网站建设 磐石网络多少费用1.检查元素是否在屏幕可见区域内 我们如何获得元素的点击率? 主要取决于用户点击元素的次数和元素在页面上显示的次数。 我们可以很容易地获取到用户的点击次数,但是如何获取一个元素的显示次数呢? 我们可以通过IntersectionObserver轻松…

1.检查元素是否在屏幕可见区域内

我们如何获得元素的点击率?

主要取决于用户点击元素的次数和元素在页面上显示的次数。

我们可以很容易地获取到用户的点击次数,但是如何获取一个元素的显示次数呢?

我们可以通过IntersectionObserver轻松实现,大家可以点击codepen体验一下实际效果。

<div class="tips">box is visible</div><div class="box">box</div><script>  const $tips = document.querySelector('.tips')  const callback = (entries) => {    entries.forEach((entry) => {      console.log(entry.intersectionRatio)      if (entry.intersectionRatio > 0) {        $tips.innerHTML = 'box is visible'      } else if (entry.intersectionRatio <= 0) {        $tips.innerHTML = 'box is hidden'      }    });  }  const options = {    // A list of thresholds, sorted in increasing numeric order, where each threshold is a ratio of intersection area to bounding box area of an observed target. Notifications for a target are generated when any of the thresholds are crossed for that target. If no value was passed to the constructor, 0 is used.    // threshold: 1,  }  const observer = new IntersectionObserver(callback, options)  observer.observe(document.querySelector('.box'))</script>

2.深拷贝一个对象

我们经常使用 lodash 来深拷贝一个对象。​​​​​​​

const obj = {  a: {    b: {      name: 'fatfish'    }  }}const obj2 = lodash.cloneDeep(obj)obj2.a.b.name = 'medium'console.log(obj.a.b.name) // fatfishconsole.log(obj2.a.b.name) // medium

但这非常麻烦,因为我们必须下载整个库才能使用 cloneDeep。

幸运的是,在大多数情况下,我们可以使用这两种更简单的方式来深拷贝一个对象。

深度克隆1

​​​​​​​

const deepClone1 = (obj) => {  return JSON.parse(JSON.stringify(obj))}const obj = {  a: {    b: {      name: 'fatfish'    }  }}const obj2 = deepClone1(obj)obj2.a.b.name = 'medium'console.log(obj.a.b.name) // fatfishconsole.log(obj2.a.b.name) // medium

是的,我相信你已经看到了,deepClone1 有一些缺陷,它不能复制函数、正则表达式、未定义等值。​​​​​​​

const deepClone1 = (obj) => {  return JSON.parse(JSON.stringify(obj))}const obj = {  a: {    b: {      name: 'fatfish'    }  },  reg: /fatfish/gi,  name: undefined,  showName: (name) => console.log(name)}const obj2 = deepClone1(obj)console.log(obj2)/*{    "a": {        "b": {            "name": "fatfish"        }    },    "reg": {}}*/

深度克隆2

另一种方法是使用 structuredClone。

这非常方便,我们甚至可以不做任何处理就可以深拷贝一个对象。

它甚至可以复制正则表达式和未定义的。​​​​​​​

const obj = {  a: {    b: {      name: 'fatfish'    }  },  reg: /fatfish/gi,  name: undefined,}const obj2 = structuredClone(obj)obj2.a.b.name = 'medium'console.log(obj.a.b.name) // fatfishconsole.log(obj2.a.b.name) // mediumconsole.log(obj2)/*{    "a": {        "b": {            "name": "medium"        }    },    "reg": /fatfish/gi,    "name": undefined}*/

但是真的没有缺点吗? 它在某些情况下也无法正常工作。

  • 它不能复制功能

  • 它不复制dom元素

  • ETC。

3.获取浏览器名称

在前端监控系统中,需要获取用户出错的浏览器。

这是获取主要浏览器名称的通用函数。​​​​​​​

const getBrowserName = () => {  const userAgent = window.navigator.userAgent  const browsers = {    chrome: /chrome/i,    safari: /safari/i,    firefox: /firefox/i,    ie: /internet explorer/i,    edge: /edge/i,    opera: /opera|opr/i,    yandex: /yandex/i,    uc: /ucbrowser/i,    samsung: /samsungbrowser/i,    maxthon: /maxthon/i,    phantomjs: /phantomjs/i,    crios: /crios/i,    firefoxios: /fxios/i,    edgios: /edgios/i,    safariios: /safari/i,    android: /android/i,    ios: /(iphone|ipad|ipod)/i,    unknown: /unknown/i  }  for (const key in browsers) {    if (browsers[key].test(userAgent)) {      return key    }  }  return 'unknown'}// Execute the above code in chrome browserconsole.log(getBrowserName()) // chrome// Execute the above code in safari browserconsole.log(getBrowserName()) // safari

4.获取随机颜色

我怎样才能得到一个随机的有效颜色?

大家可以点击codepen链接体验实际效果。​​​​​​​

const randomColor = () => {  // Generate three random numbers as the three components of an RGB color value  const r = Math.floor(Math.random() * 256);  const g = Math.floor(Math.random() * 256);  const b = Math.floor(Math.random() * 256);  // Convert RGB color values to hexadecimal format  const hexR = r.toString(16).padStart(2, '0');  const hexG = g.toString(16).padStart(2, '0');  const hexB = b.toString(16).padStart(2, '0');  // Concatenated into a complete color value string  const hexColor = `#${hexR}${hexG}${hexB}`;  return hexColor;}

5.复制内容到剪贴板

为了给我们的网站用户提供更好的交互体验,我们经常需要提供将内容复制到剪贴板的功能。

难以置信的是,我们竟然只需要6行代码就可以实现这个功能。​​​​​​​

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

6.从搜索中获取查询字符串

使用 URLSearchParams 解析搜索数据变得非常容易。

const getSearchParam = (name) => {  const searchParams = new URLSearchParams(window.location.search)  return searchParams.get(name)}// https://medium.com?name=fatfish&age=1000console.log(getSearchParam('name')) // fatfishconsole.log(getSearchParam('age')) // 1000​​​​​​​
const getSearchParams = () => {  const searchParams = new URLSearchParams(window.location.search)  const params = {};  for (const [ key, value ] of searchParams) {    params[key] = value  }  return params}// https://medium.com?name=fatfish&age=1000getSearchParams() // { name: 'fatfish', age: 1000 }

7.将元素滚动到页面顶部

我们可以使用 scrollIntoView 方法将元素滚动到页面顶部。

甚至它可以提供非常流畅的用户体验。

const scrollToTop = (ele) => {  ele.scrollIntoView({ behavior: "smooth", block: "start" })}document.querySelector('button').addEventListener('click', function () {  scrollToTop(this)}, false)

8.将元素滚动到页面底部

将元素滚动到顶部是如此简单。

那我们要如何将元素滚动到页面底部?我想你已经猜到了,设置block结束即可。​​​​​​​

const scrollToTop = (ele) => {  ele.scrollIntoView({ behavior: "smooth", block: "end" })}document.querySelector('button').addEventListener('click', function () {  scrollToTop(this)}, false)
http://www.hkea.cn/news/932975/

相关文章:

  • 织梦统计网站访问量代码网络营销公司如何建立
  • 外贸营销型网站建设今日最新重大新闻
  • 个性化定制网站长春网络推广优化
  • 合肥庐阳区疫情最新消息seo优化首页
  • h5网站制作接单最新中高风险地区名单
  • 北京市住房城乡建设委网站公司怎么在网上推广
  • 网站建设首页怎样插入视频百度指数在线查询小程序
  • 青州网站制作哪家好aso优化哪家好
  • wordpress做网站优点郑州网站seo优化
  • 宝安做棋牌网站建设找哪家公司好湖南长沙疫情最新消息
  • 四川专业网站建设中国十大企业培训机构排名
  • 怎么切页面做网站灰色词首页排名接单
  • 网站右侧浮动广告代码百度推广代理公司广州
  • 固原建站公司旺道seo推广系统怎么收费
  • 适合做外链的网站海外广告联盟平台推广
  • 建筑模板规格型号郑州厉害的seo顾问
  • ppt做书模板下载网站有哪些内容国际婚恋网站排名
  • 上海网站建设内容更新网络营销策划目的
  • 重庆市建设信息网站关键词查询网
  • 做哪种网站流量大怎么打广告宣传自己的产品
  • 免费表白网站制作seo网络优化推广
  • 网站建设中可能升级中国科技新闻网
  • 网站制作内容文案网站如何快速被百度收录
  • 淘宝淘宝网页版登录入口免费seo公司
  • 竹溪县县建设局网站短视频营销
  • 好的网站有哪些搜索引擎seo是什么意思
  • 做音乐网站赚钱吗做小程序的公司
  • 坪地网站建设域名流量查询工具
  • 网站建设部署万能推广app
  • 网站的重要性怎么做个网站