html5移动端适配;检测浏览器信息函数

这篇具有很好参考价值的文章主要介绍了html5移动端适配;检测浏览器信息函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

html5移动端适配

//动态改变font-size大小
(function changeFontSize() {
    let resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
    if (!isPC()) {
        let docEl = document.documentElement;
            // recalc = function () {
                let clientWidth = docEl.clientWidth;
                docEl.style.fontSize = 100 * (clientWidth / 375)  + 'px';
                let scaledFontSize = parseInt(window.getComputedStyle(docEl, null).getPropertyValue('font-size'));
                let scaleFactor = 100 * (clientWidth / 375) / scaledFontSize;
                let originRootFontSize = parseInt(window.getComputedStyle(document.documentElement, null).getPropertyValue('font-size'));
                docEl.style.fontSize = originRootFontSize * scaleFactor * scaleFactor + 'px';
            // };
    } else {
        let docEl = document.documentElement;
        docEl.style.fontSize = 'unset'
    }
    // if (!doc.addEventListener) return;
    window.addEventListener(resizeEvt, changeFontSize, false);
    document.addEventListener('DOMContentLoaded', changeFontSize, false);
})(document, window);

function isPC() {
    let userAgentInfo = navigator.userAgent;
    let Agents = ["Android", "iPhone",
        "SymbianOS", "Windows Phone",
        "iPad", "iPod"];
    let isPc = true;
    for (let i = 0;i< Agents.length; i++) {
        if (userAgentInfo.indexOf(Agents[i]) > 0) {
            isPc = false;
            break;
        }
    }
    if (document.documentElement.clientWidth <= 640) {
        isPc = false;
    }
    return isPc;
}

浏览器信息检测

//判断浏览器信息
function getNavigationInfo () {
    const ua = navigator.userAgent
    let browserInfo = {
        trident: ua.indexOf('Trident') > -1, // IE浏览器 trident内核
        presto: ua.indexOf('Presto') > -1, // opera浏览器 presto内核
        webKit: ua.indexOf('AppleWebKit') > -1, // chrome safari浏览器 webkit内核
        gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') == -1, //firefox浏览器 gecko内核
        mobile: !!ua.match(/AppleWebKit.*Mobile.*/), // 是否为移动终端
        ios: !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), // ios终端
        android: ua.indexOf('Android') > -1 || ua.indexOf('Linux') > -1, // android终端或UC浏览器
        iPad: ua.indexOf('iPad') > -1, //iPad终端
        webApp: ua.indexOf('Safari') == -1, //是否web应用程序,没有头部与底部
        openOnVchat: ua.toLowerCase().match(/MicroMessenger/i) == "MicroMessenger".toLowerCase(), // 在微信中打开
        openOnWeiBo: ua.toLowerCase().match(/WeiBo/i) == "Weibo".toLowerCase(), // 在新浪微博客户端打开
        openOnQQ: ua.toLowerCase().match(/QQ/i) == "QQ".toLowerCase(),// 在QQ端打开
    }
    return browserInfo;
}

文本可编辑

在文本标签上加上属性contenteditable=“true”文章来源地址https://www.toymoban.com/news/detail-826924.html

深拷贝对象

function deepClone(obj) {
  if (obj === null || typeof obj !== 'object') {
    return obj;
  }

  let clone = Array.isArray(obj) ? [] : {};

  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      clone[key] = deepClone(obj[key]);
    }
  }

  return clone;
}

到了这里,关于html5移动端适配;检测浏览器信息函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 下 FireFox( 火狐 ) 浏览器不支持HTML5播放器解决方法

    终端输入   会出现正在设定 ttf-mscorefonts-installer 点【Tab】键,选中【确定】,然后单击【Enter】,选【是】,按【Enter】键,等待解压安装 重启浏览器ok了

    2024年04月14日
    浏览(44)
  • 针对于selenium的一些常规配置(防检测,无头,保留自己浏览器的登录信息等)

    在使用selenium的时候有时候会受到网站的检测导致我们的程序被迫中止,因此我们需要给selenium添加一些浏览器特征来防止被网站检测到**(1-4为防检测配置)**. 在给selenium添加参数的时候,我们可以使用add_argument selenium添加user-agent参数 去除 “Chrome正受到自动化测试软件的控制”

    2024年02月12日
    浏览(46)
  • 关于浏览器适配的方案

    如果需要使用  rem  单位进行适配,推荐使用以下两个工具: postcss-pxtorem 是一款 PostCSS 插件,用于将 px 单位转化为 rem 单位 lib-flexible 用于设置 rem 基准值 下面提供了一份基本的 PostCSS 示例配置,可以在此配置的基础上根据项目需求进行修改。 其他设计稿尺寸 如果设计稿

    2024年02月01日
    浏览(33)
  • vue3视频大小适配浏览器窗口大小

    目标:按浏览器窗口的大小,平铺视频,来适配屏幕的大小 。 考虑使用 DPlayer.js、video.js、vue-video-player等视频插件,但报了各种各样的错;试过使用 js 对视频进行同比例放大,再判断其与窗口的大小取最小值,思路没错,但我的获取视频大小是undefined,大概率是哪里出问题

    2024年02月06日
    浏览(40)
  • 【移动端网页布局】移动端网页布局基础概念 ④ ( 物理像素 | 物理像素比 | 代码示例 - 100 像素在 PC浏览器 / 移动端浏览器 显示效果 )

    移动端 网页开发 与 PC 端开发有很多不同之处 , 在图片处理方向需要采用 二倍图 / 三倍图 / 多倍图 方式进行图片处理 ; 图片处理的方式与如下的 物理像素 与 物理像素比 概念相关 ; 物理像素 : 物理像素就是 设备 上的分辨率 , 如 1920 x 1080 像素 , 就是宽度上有 1920 个像素 , 高

    2023年04月23日
    浏览(46)
  • 移动端浏览器性能优化探索

    在移动端的页面开发过程中,我们经常提及页面性能优化、消除页面卡顿的话题,如何·确定优化策略,我们首先应当对页面卡顿的行为有所认知。 前言  页面的卡顿现象可以比较明确的分为三个类型,分别是 “画面撕裂” 、“丢帧不流畅”、“长时间未响应”。 “画面

    2024年02月06日
    浏览(53)
  • HTML浏览器的标准协议

    HTML (Host to Word Language)是 Web浏览器的标准协议,目前的网页浏览器基本都使用该协议。使用该协议的站点能够创建最广泛的用户界面,并提供可供访问的网站。HTML一般由32位到64位文字、符号和图形组成,其中文字部分主要用于显示信息,图形部分主要用于显示图片。它允许用

    2024年02月07日
    浏览(42)
  • 获取浏览器信息

    由于 window 对象是一个全局对象,因此在使用 window.navigator 时可以省略 window 前缀,例如 window.navigator.appName 可以简写为 navigator.appName 。   下表中列举了 JavaScript navigator 对象中常用的属性及其描述: 属性 描述 appCodeName 返回当前浏览器的内部名称(开发代号) appName 返回浏览

    2023年04月09日
    浏览(35)
  • H5 移动端浏览器调用微信的分享功能

    API参考:概述 | 微信开放文档  封装  .js Tips: title,desc,imgURL,根据自己需求进行配置 分享到微信聊天框的示例图

    2024年02月12日
    浏览(40)
  • HTML标签根据浏览器窗口大小自适应

    1.使用calc实现自适应 (需要父盒子宽高固定) 2.使用flex布局,两栏布局,三栏布局 文章就到这里啦,本人功力尚浅,若有不妥之处请谅解指正,谢谢!

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包