最近做的一个项目需要同时适配PC端和iPad及mobile移动端,由于PC端的设备屏幕宽度比iPad和mobile端大太多,因此页面布局需要进行区分。而前笔者在端项目中使用了vue和vue-router进行开发,也就是说需要根据当前客户使用的设备属于哪种客户端让路由决定进入哪种设备适配的页面组件。因此需要在邻项目路由的入口处判断客户使用的设备是PC、iPad还是mobile。
Nuxt.js就是一个Vue的服务端渲染框架,和React的服务端渲染框架Next.js类似,
可以通过 JavaScript 来实现判断当前的设备类型:navigator 是 JavaScript 中的一个独立的对象,用于提供用户所使用的浏览器以及操作系统等信息,以 navigator 对象属性的形式来提供。所有浏览器都支持该对象。
有时候会被别人问起pc端和手机端有什么区别。一般来说都会去说,兼容性啊,适配啊,网页布局这方面的事情,但是我觉得这个问题如果想要拿一个满分应该从区别出发,从如何判断收尾。毕竟你只知道区别没有用,他可能更想让你说出来你是怎么判断的。
手机端和PC端分别加载不同的js客服代码(注意:是要在PC和手机端分别加载不同的js文件)
近几年来,随着手机和pad的普及,越来越多的用户选择使用移动客户端访问网站,而为了获取更好的用户体验,就需要针对不同的设备显示出最合适的匹配,这样就是近年来流行的“响应式web设计”。 响应式web设计是一种纯前端技术js、css等实现的针对不同设备访问同一网址看到不同的布局,是页面内容更适合当前设备阅读。但这个不是本文的重点,重点还是放在nginx如何实现上来。 本文要讲的的是如何使用nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套移动端、一套pc端),这
EasyNVR的客户端中PC端和移动端差异有很多。例如: 由于PC端、移动端自身硬件的差异,所需要展示的样式也会存在一定的差别;在摄像机接入类型是ONVIF时,EasyNVR视频实时播放界面中PC端会提供云台控制界面;而为了用户有一个更好的观感和体验,在移动端会隐藏该界面。
Computed 在 Vue 中常用,是一种计算属性,里面的值是响应式的,但你知道 getComputedStyle 这个 CSS 属性吗?Computed + Style ,没错,样式也能做到响应式。
如何打造一个移动端H5性能平台?听起来是否有点高大上,不知道如何下手。不要紧张,我们来手把手教大家打造自己的移动端H5性能测试平台。 功能篇 【H5前端性能平台可以做什么】 以前我们要测试移动端H5性能,通常会用到远程连接+抓包分析,工具诸如:fiddler,Charles。或者是一些在线测试工具:Page Speed、PCAP Web Performance Analyzer、WebPagetest。这些工具要么测试执行过程复杂,要么测试报告复杂,亦或者也看不出测试结果是好是坏。 所以我们希望移动端H5性
今天在微信公众号看到一篇技术博文,想用印象笔记收藏,所以发送了文章链接到pc上。然后习惯性地打开控制台,看看源码,想了解下最近微信用了什么新技术。 呵呵,以下勾起了我侦探的欲望。页面加载后的异常点就是只加载了一个js,如下图所示:
面试挺累人的,每天下班后赶回家面试,有时候干脆找个会议室偷偷摸摸面试。面了将近一个月,基本上全都过了,但由于各种因素,又都拒了。。。现在又要开始新一轮的面试了,祝自己好运吧。
劣势:需加载适配各个终端的各个资源,在不同终端通过响应式布局实现不同展现,部分交互效果需要在页面中做终端判断,代价较大,若图片资源为一套,部分图片在超高分辨率设备(例如iphone系列)下会失真,且在非wifi情况下即使加了延时加载也易出现加载慢的情况。
通过判断浏览器的 userAgent,用正则来判断手机是否是ios和Android客户端。代码如下:
平常开发很常见的功能,在移动端需要根据javaScript来判断手机是安卓还是ios进行应用市场跳转。
js判断客户端是否是IOS或者是Android //如果返回true 则说明是Android function is_weixin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == 'micromessenger') { return true; } else { return false; } } j
HTML5学堂:相对来说,JS在移动端要远远低于PC端的使用频率,因此积累的开发经验并不是太多。在这里简要整理一些JavaScript在移动端的项目经验,主要包括click点击事件延迟、元素高亮点击区、zepto的touch问题等。 移动端click时间300ms延迟 在移动端,click点击事件会造成300ms的延迟,造成这种延迟的原因在于:当用户一次点击屏幕之后,浏览器并不能立刻判断用户是要进行双击缩放,还是想要进行单击操作。因此,浏览器就等待 300 毫秒,以判断用户是否再次点击了屏幕。 对于这种体验
经常在项目中会有支持 pc 与手机端需求。并且pc与手机端是两个不一样的页面。这时就要求判断设置,根据不同的设置跳转不同的路由。 在 router/index.js 中添加两个页面
问题:兼容性差距,由于@change触发方式不同,导致时间加载不够统一,时间触发出现问题。
移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方。比如触屏事件 touch(也称触摸事件),Android 和 IOS 都有。touch 对象代表一个触摸点。触摸点可能是一根手指,也可能是一根触摸笔。触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。
CSS中有很多媒体查询的用法,例如设备尺寸判别,是否支持鼠标行为,是否是黑暗模式,是否是省电模式等。
现在很多老版的网站都会有m站,在我们使用移动端访问时会自动跳转到m站,那么如何判断客户端设备是电脑还是手机或者是平板呢,有的使用的是js判断方式,以前我们使用的方式也是这样的,但是这样是损失资源的,因为js判断是在页面上进行的操作,这样就会有数据的请求。然后,获取完数据,判断设备类型,进行跳转,再次获取数据,渲染页面。浪费了很多资源,也加长了用户的等待时间。
现在在做的项目是一个对功能要求比较高的项目,同时也有SDK端的开发.项目中有一个场景就是在pc端通过富文本编辑的内容要在SDK端显示,测试的时候发现有一些图片超出了手机的最大宽度,会出现一个横向的滚动条,这样很影响体验.做显示这块的是公司做android和ios的同事,他们拿到的值富文本直接导出的json格式的html代码,因此他们很难再对代码进行二次处理,解决问题的源头又回到了我这里~~ 言归正传,想要解决问题就要从标签的style属性着手;本人在追踪数据流的时候发现了在导出编辑器内容的时候会把编辑器内容全部遍历一次的地方,遍历的数组大概就长这样(这其实是遍历之后的,理解我的意思就行)
攻击者在入侵网站后,常常会通过恶意劫持流量来获取收益,从而实现流量变现。有一些黑帽劫持的手法堪称防不胜防,正常的访问行为很难发现异常。今天给大家分享一下常见的网站劫持手法和排查思路。
虽然当时构思的时候想法很丰满,但是做出来以后突然觉得功能好鸡肋。左右浮动切换上下篇算是唯一的亮点了。上下按钮用拖动方式体感上还不如直接用侧栏菜单的按钮功能来的方便。尤其是考虑到PC端,手机端,窄屏设备,触屏电脑等设备动作的监测判断。总是牵扯到一大堆的交集。然后就是点击动作在某个屏宽比下会执行两次。 Dorakika的代码我也没吃透,似乎有个长按以后能够拖动悬浮菜单的功能,搞不好我多删了一些代码,长按以后拖动的结束动作一直没法按照期望的来。 这个悬浮按钮不打算实装了,作为学习用吧。bug太多,不修啦。
PhoneGap(Codova 的前身)作为 Hybrid 鼻祖框架,是一个开源的移动开发框架,允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台的Hybird WebUI开发,应该是最先被开发者广泛认知的 JSBridge 的应用场景。而对于 JSBridge 的应用在国内真正兴盛起来,则是因为杀手级应用微信的出现。
登录公众号后,左侧菜单栏选择:开发 => 基本配置,直接复制开发者ID(AppID)即可:
一般是想通过各种方式来实现弹性图片的效果,在实现原理中也提供了几种方案,这里具体说明
两个八竿子打不到边东西怎么建立关系? 个人理解可以想象成开房问题。首先让WEB随机生唯一成门牌号,用户扫码得到门牌号,这里不用担心用其他扫描得到门牌号,因为我们只知道门牌号没要钥匙,没有钥匙这是没用的。 扫一扫就拿到门牌号就相当于打电话告诉老板你要这个房间,这时老板也就得到你的信息也就是说谁扫了二维码!好了现在知道是谁了。我们就可以用js轮询访问老板是谁要了这个房间然后就开房就成功了! 其实,上面写的都是错的,我压根没有做过类似的事。
请注意,本文编写于 2082 天前,最后修改于 173 天前,其中某些信息可能已经过时。
前言 代码写的久了,就会发现很多时候都是在写一些重复的东西,这个时候就应该要考虑到提高工作效率了,比如对常用方法的封装,例如日期格式化,浏览器类型判断等。 今天这篇文章我们就来看看如何封装常用的Javascript方法,打造出属于自己的一套Javascript武器库吧。封装的代码为了不依赖于其他库,都采用原生的Javascript编写。 文中的代码有些比较长,理解的不是很清楚的,可以直接去github上看。 https://github.com/zhouxiongking/article-pages/blo
使用JSSDK主要包括 1、判断当前客户端版本是否支持指定JS接口、 2、分享接口(微信认证) 3、图像接口 4、音频接口 5、智能接口(识别语音并返回结果) 6、设备信息(获取网络状态) 7、地理位置 8、界面操作 9、微信扫一扫 10、微信小店(服务号必须通过微信认证) 11、微信卡券 (微信认证) 12、微信支付(服务号必须通过微信认证)
我们有时候开发一个新项目比较辛苦,不想让别人轻易就能反编译代码,我们可以加一个授权登录,如果不是在微信端登录就会提示“请在微信客户端打开链接”,如下图所示,这就是很多网友说的微信链接无法在pc端打
本基于Java+Websocket+Vue.js实现仿微信即时通讯聊天APP系统,采用面向对象思想,选用Vue.js技术实现APP端聊天界面,后台选用JavaSSM轻量级开发框架,采用websocket实现客户端与服务端的及时通信。系统主要界面功能仿照微信实现,具备聊天通讯录,我的朋友圈,个人信息等模块。
一些调试工具 说起手机端调试,相比大家都不陌生。 由于手机浏览器没有像PC端浏览器一样有开发调试工具,所以一般手机端的调试都要借助于电脑,现在的调试方式通常有以下几种。 直接在chrome, firefox等开启模拟器调试简单直接,还能模拟网络等,但是仍然无法100%还原手机的真实情况。 实现一套pc调试面板 采用这种实现方式有weinre,weinre很早前就比较流行了,使用也比较广泛,运行后会在PC上生成一个像chrome开发工具一样的调试器。能对手机进行远程调试,能操作DOM,打印console输出等
在网上找mraid相关资料,相对比较少,大多都是API介绍,概念介绍等,没有一份详细的移动端网页广告使用教程,经过自己两天的摸索,完成了开发的移动端网页版的广告加入mraid功能。
前几天遇见了js不兼容问题,然后使用了一下vconsole,发现连这个也不兼容,于是放弃了修复。今天刚好有人问到移动端的问题,于是就想分享一下vconsole这个移动端的调试工具。一篇水文,随意看看。
1. 概述 上段时间一直忙于处理大会安全保障与应急,借助公司云悉情报平台,发现并处置几十起网站被劫持的情况。对黑客SEO技术颇有感觉。正好这段时间有时间,把以前遇到比较有趣的案例和大家分享一下。里面很多技术其实早已被玩透,只是网上搜了一下并无太多这方面的介绍。所以在这里共享一下相关的案例,案例主要分享一下思路。 1.1 原理 网站劫持是一个相对古老的技术,主要是黑帽用来做SEO用。实现网站劫持如果以下步骤: 入侵相关网站 然后在网站中插入JS或修改其配置文件,增加相应的劫持代码。另外一般会加入判断条件,判
eruda与腾讯推出的vconsole很相似,都是用于移动端的调试,让开发者在移动端的浏览器中获得近似PC端浏览器的调试能力。 截止至本文发稿之日,eruda在GitHub上已经有2.7K个star
JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroid = is_android(); if (isPc){ //pc location.href = url; }else{ if (isAndroid){
通过JS判断访问设备并跳转对应HTML页面 <script type="text/javascript"> if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) { window.location = "手机页面.html"; //移动端访问跳转页面 } else { window.location = "电脑页面.html"; //PC端访问跳转页面 } </sc
通常我们写了一套自适应的 web 程序,想在多种环境中使用.比如 app 里,微信小程序里,各种 app 分享中, 假如只是能使用 app 浏览,问题不大,但是要在被嵌入 app 里面和 app 本身交互,就要做各种折腾, 如是就有了本文.
之前有个项目需要调用微信扫描二维码的功能,通过调用微信扫码二维码功能,然后去获取到系统中生成的二维码信息。正好微信JS-SDK提供了调用微信扫一扫的功能接口,下面让我们来看看是如何实现的吧。
这几天把一个旧项目中的fckeditor升级为ckeditor 3.2 + ckfinder 1.4.3 组合,下面是一些升级心得: 一、CKFinder的若干问题 1.单独使用 ckfinder从原
织梦移动端与pc之间的相互跳转,直接把js放到页面,然后把当前的网址写入browserRedirect()中去,m端要注意列表页用list.php文章页用view.php
Js中获取浏览器信息字符串只要使用navigator.userAgent即可,这样我们再利用indexof来判断版本或其它信息了。
我试图通过将文章底部的按钮改至左右两侧,类似翻页键,同时添加悬停动作,通过css对兄弟相邻元素的hover监测来控制显隐,悬停按钮时在页面正中显示对应文章卡片。
我查了很多资料,逛了很多论坛,最终在Github上找到了一个名为“NativeShure”的JS插件,据说对浏览器的兼容性不错,于是便开始折腾!
本文主要是针对之前一些熟悉的前端概念,再次回顾的时候,结合自己的开发经验和使用,进行再次理解。经过了开发和线上使用之后,会有更为深刻的印象。对比requirejs源码分析,实现一个模块加载器,需要考虑哪些问题。
领取专属 10元无门槛券
手把手带您无忧上云