wuwh's blog

Make progress every day


  • 首页

  • 标签39

  • 分类12

  • 归档71

  • 搜索

可能这些是你想要的H5键盘兼容方案

发表于 2019-03-19 | 更新于 2022-09-27 | 分类于 javascript
前言最近一段时间在做 H5 聊天项目,踩过其中一大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上。需求很明确,看似很简单,其实不然。从实验过一些机型上看,发现主要存在以下问题: 在 Android 和 IOS 上,获知软键盘弹起和收起状态存在差异,且页面 webview 表现不同。 在IOS12 上,微信版本 v6.7.4 及以上,输入框获取焦点,键盘弹起,页面(webview)整体往上滚动,当键盘收起后,不回到原位,导致键盘原来所在位置是空白的。 在 IOS 上,使用第三方输入法,高度计算存在偏差,导致在有些输入法弹起,将输入框挡住一部分。 在有些浏览器上使用一些操作技 ...
阅读全文 »

Promise的实现

发表于 2019-02-18 | 更新于 2022-09-27 | 分类于 ES6
用过 Promise,但是总是有点似懂非懂的感觉,也看过很多文章,还是搞不懂 Promise的 实现原理,后面自己边看文章,边调试代码,终于慢慢的有感觉了,下面就按自己的理解来实现一个 Promise。 已将每一步的代码都放在了 github 上,方便大家阅读。如果觉得好的话,欢迎star。 想要完全理解代码,需要理解 this 和闭包的含义。 Promise是什么简单来说,Promise 主要就是为了解决异步回调的问题。用 Promise 来处理异步回调使得代码层次清晰,便于理解,且更加容易维护。其主流规范目前主要是 Promises/A+ 。对于 Promise 用法不熟悉的,可以参看我的 ...
阅读全文 »

小程序bug集合

发表于 2019-01-18 | 更新于 2022-09-27 | 分类于 小程序
本地目录下的背景图加载不出来 使用线上图片链接,或者压缩成base64,常用做法可以用云存储功能 区域滚动,<view> 加滚动属性 overflow: auto; 在真机上滑动卡顿 区域滚动使用 <scroll-view> 组件 <scroll-view> 分页加载,上拉滚动到底部,没有触发scrolltolower 事件 需要设置 <scroll-view> 的 height 属性 小程序底部 tabBar 图标模糊 icon 大小限制为 40kb,建议尺寸为 81px * 81px WXML 中数据绑定 Mustache ...
阅读全文 »

简约强大数组操作组合

发表于 2018-12-25 | 更新于 2022-09-27 | 分类于 javascript
前言在实际js开发中对数组操作频率非常高,看过一些小伙伴的一些用法,挺有意思,在这里小记(不全)一下,备忘。 5个迭代方法:every、filter、forEach、map和some every():对数组中的每一项运行给定函数,如果该函数每一项都返回true,则返回true; filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组; forEach():对数组中的每一项运行给定函数,这个方法没有返回值; map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组; some():对数组中的每一项运行给定函数,如果该函数任意一项返回tr ...
阅读全文 »

从入门到上线一个天气小程序

发表于 2018-10-31 | 更新于 2022-09-27 | 分类于 小程序
前言学习了一段时间小程序,大致过了两遍开发文档,抽空做个自己的天气预报小程序,全当是练手,在这记录下。小程序开发的安装、注册和接入等流程就不罗列了,在小程序接入指南已经写得很清楚了,以下只对开发过程常用到得一些概念进行简单梳理,类比 Vue 加强记忆,最后选取个人项目天气小程序中要注意的几点来说明。 欢迎扫码体验 源码请戳这里,欢迎start~ 初始化项目目录结构安装好开发者工具,填好申请到的AppID,选好项目目录,初始化一个普通小程序目录结构,得到: 1234567891011121314151617--|-- pages |-- index |-- index.js ...
阅读全文 »

scrollIntoView

发表于 2018-10-25 | 更新于 2022-09-27 | 分类于 javascript
前言在实际应用中,经常用到滚动到页面顶部或某个位置,一般简单用锚点处理或用js将document.body.scrollTop设置为0,结果是页面一闪而过滚到指定位置,不是特别友好。我们想要的效果是要有点缓冲效果。 现代浏览器陆续意识到了这种需求,scrollIntoView意思是滚动到可视,css中提供了scroll-behavior属性,js有Element.scrollIntoView()方法。 scroll-behaviorscroll-behavior属性可取值auto|smooth|inherit|unset scroll-behavior: smooth;是我们想要的缓冲效果。在 ...
阅读全文 »

vConsole

发表于 2018-09-26 | 更新于 2022-09-27 | 分类于 mobile
前言你是否遇到这样的情况?你的移动端项目上线,突然用户发现某个页面或功能不能用了,按照所见即所得原理,产品第一时间肯定揪出你这个前端er起来改bug,而此时你正在下班的地铁上或远方找个清静的地方佛(hai)系(pi),反正就是没有电脑或网络环境提供条件区调试你的前端页面。 在开发移动端页面难处除了兼容纷杂机型屏幕,还有在实际终端上调试,原生app、微信小程序开发可以抓日志打印,而页面h5开发打印是不会显示的。 怎样能从前端开始快速定位问题呢?作为前端er的工作就是要把浏览器反馈的信息都能放到页面让用户看到,错误信息也不例外,只不过要在不影响用户使用的前提下,选择一个合适的时机。 而vConso ...
阅读全文 »

简约强大数组操作组合

发表于 2018-09-07 | 更新于 2022-09-27 | 分类于 javascript
前言在实际js开发中对数组操作频率非常高,在这里小记(不全)一下,备忘。 5个迭代方法:every、filter、forEach、map和some every():对数组中的每一项运行给定函数,如果该函数每一项都返回true,则返回true; filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组; forEach():对数组中的每一项运行给定函数,这个方法没有返回值; map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组; some():对数组中的每一项运行给定函数,如果该函数任意一项返回true,则返回true; 12345 ...
阅读全文 »

构建自己的博客

发表于 2018-08-30 | 更新于 2022-09-27 | 分类于 其它
一、前言看过很多人,用github创建个人博客,最近抽空也实现的自己的博客,下面就把摸索过程记录下。 二、准备安装Node.jsNode.js下载地址:https://nodejs.org/en/download/ 安装过程一路默认安装即可。 详细安装文档参看:http://www.runoob.com/nodejs/nodejs-install-setup.html 安装Git软件Git软件下载地址:https://git-scm.com/download 安装过程一路默认安装即可。 关于更多的Git讲解参看: https://www.liaoxuefeng.com/wiki/0013739 ...
阅读全文 »

尾调用

发表于 2018-07-27 | 更新于 2022-09-27 | 分类于 javascript
前言面某东,有一道题目是 实现一个斐波拉契数列, 已知第一项为0,第二项为1,第三项为1,后一项是前两项之和,即f(n) = f(n - 1) + f(n -2)。 拿到这个题目,二话没想就写了 12345function f(n) { if(n === 0) return 0; if(n === 1) return 1; return f(n - 1) + f(n -2);} 后来回想,后悔死了,这明显没这么简单,每次递归调用都会呈指数往调用栈里增加记录“调用帧“,这样做,当项比较多,就会出现“栈溢出”的!!!也就是,这个答案是不及格的,正确姿势应该 ...
阅读全文 »
1…345…8
wuwhs

wuwhs

71 日志
12 分类
39 标签
GitHub Segmentfault
© 2017 – 2023 copyright by wuwh's blog