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

珠海模板建站定制网站十大搜索引擎排行榜

珠海模板建站定制网站,十大搜索引擎排行榜,西安h5网站建设,什么叫H5网站开发1. 需求分析 添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回 NodesRef 对应的 SelectorQuery。区分小程序和H5的环境,调用 getBoundingClientRect 获取对应的信息。 2. H5 实现 判断传…

1. 需求分析

  1. 添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回 NodesRef 对应的 SelectorQuery。
  2. 区分小程序和H5的环境,调用 getBoundingClientRect 获取对应的信息。

2. H5 实现

  1. 判断传入元素是否是window窗口,是window窗口,直接获取窗口的宽高;
  2. 元素,同时可以获取元素的宽高等信息;
  3. 都不满足,返回默认值。
function isWindow(val){return val === window
}export const getRect = (elementRef) => {const element = elementRef// 判断传入元素是否是window窗口,是window窗口,直接获取窗口的宽高if (isWindow(element)) {const width = element.innerWidthconst height = element.innerHeightreturn {top: 0,left: 0,right: width,bottom: height,width,height,}}// 是元素,同时可以获取元素的宽高等信息if (element && element.getBoundingClientRect) {return element.getBoundingClientRect()}// 都不满足,返回默认值return {top: 0,left: 0,right: 0,bottom: 0,width: 0,height: 0,}
}

3. Taro 实现

  1. 元素存在,判断使用对应环境获取元素信息;
  2. H5环境使用元素的获取元素信息方法;
  3. 微信小程序环境调用 boundingClientRect 获取元素信息;
  4. 返回默认值。
export const getRectByTaro = async (element) => {// 元素存在,判断使用对应环境获取元素信息if (element) {if(process.env.TARO_ENV === "h5"){// H5环境使用元素的获取元素信息方法return Promise.resolve(getRect(element))} else if(process.env.TARO_ENV === "weapp"){// 微信小程序环境调用 boundingClientRect 获取元素信息return new Promise((resolve) => {createSelectorQuery().select(`.${element.props.class.split(' ').filter(item => item).join('.')}`).boundingClientRect(resolve).exec()})}}// 返回默认值return Promise.resolve({top: 0,left: 0,right: 0,bottom: 0,width: 0,height: 0,})
}

4. 使用实例

1. 引入

import React, { Component } from 'react';
import { getRectByTaro } from '@utils/use-client-rect';

2. 获取 dom 的 getBoundingClientRect 信息

class page extends Component {constructor(props) {this.navbarRef = React.createRef()}componentDidShow(){// 如果元素内有动态信息,需要将获取信息的方法放到请求数据完成,设置数据后边this.getElementInfo()}getElementInfo(){let _this = this;let timer = setTimeout(async () => {clearTimeout(timer)console.log('_this.navbarRef',_this.navbarRef.current)let info = await getRectByTaro(_this.navbarRef.current)console.log('navbarRef', info)},0)}render() {return (<View className='rui-navbar-current-content' ref={this.navbarRef}></View>)}
}

5. 微信小程序返回样例

输入图片说明

6. H5 返回样例

输入图片说明

7. 完整代码

import { createSelectorQuery } from '@tarojs/taro';
function isWindow(val){return val === window
}export const getRect = (elementRef) => {const element = elementRef// 判断传入元素是否是window窗口,是window窗口,直接获取窗口的宽高if (isWindow(element)) {const width = element.innerWidthconst height = element.innerHeightreturn {top: 0,left: 0,right: width,bottom: height,width,height,}}// 是元素,同时可以获取元素的宽高等信息if (element && element.getBoundingClientRect) {return element.getBoundingClientRect()}// 都不满足,返回默认值return {top: 0,left: 0,right: 0,bottom: 0,width: 0,height: 0,}
}export const getRectByTaro = async (element) => {// 元素存在,判断使用对应环境获取元素信息if (element) {if(process.env.TARO_ENV === "h5"){// H5环境使用元素的获取元素信息方法return Promise.resolve(getRect(element))} else if(process.env.TARO_ENV === "weapp"){// 微信小程序环境调用 boundingClientRect 获取元素信息return new Promise((resolve) => {createSelectorQuery().select(`.${element.props.class.split(' ').filter(item => item).join('.')}`).boundingClientRect(resolve).exec()})}}// 返回默认值return Promise.resolve({top: 0,left: 0,right: 0,bottom: 0,width: 0,height: 0,})
}
http://www.khdw.cn/news/32749.html

相关文章:

  • 做网站需要学什么软件软文写作网站
  • 企业产品推广网站关键词全网指数查询
  • 东莞黄江做网站企业网站推广方案
  • 婚恋网站基本seo技术在线咨询
  • php网站怎么做集群苏州关键词优化怎样
  • 做网站的利与弊昆山seo网站优化软件
  • 专门做特卖的网站免费人脉推广
  • 社交网站先做pc站可以吗全国免费信息发布平台
  • 东莞外贸网站建设哪家好搜索引擎入口大全
  • web手机版下载昆明排名优化
  • 古色古香网站模板上海的重大新闻
  • 网站推广适合哪种公司做成人用品推广网页
  • 整人关不掉的网站怎么做营销型网站建设案例
  • 连云港网站制作公司哪家好关键词检测工具
  • 网站众筹该怎么做莆田关键词优化报价
  • 做怎个样网做站个网站品牌推广战略
  • 免费b2b信息网站属性词 关键词 核心词
  • 做网站的经费seo岗位有哪些
  • 网站开发部门的规章制度手机端百度收录入口
  • 山东联通网站备案网络seo啥意思
  • 木鱼的网站关键词推广方式
  • 中学校园网站建设方案网站ip查询
  • 扫码支付做进商城网站情感营销的十大案例
  • 天长街道两学一做网站百度度小店申请入口
  • 策划网站设计网站在线客服系统源码
  • 做公司网站推广sem投放
  • web网站源码百度百度一下你就知道主页
  • 自动做设计的网站搜索引擎推广
  • sae wordpress主题厦门seo起梦网络科技
  • 邢台学校网站建设报价广州百度搜索优化