JavaScript 骚操作
手机端页面自适应解决方案—rem布局进阶版(附源码示例)
BFC和 websocket
后jQuery时代
是时候和 jQuery 说拜拜了么?
10分钟学会ES7+ES8 ,精读AsyncAwait
25个最基本的JavaScript面试问题及答案
javascript 之模块化篇
javascript常用函数 【4星级】
vue2实践,填坑筆記(持续更新) 【***】
JavaScript数组所有API全解密 【干货】
JavaScript字符串所有API全解密 【干货】
js数组API--温故知新
数组扁平化、去重、排序,又搞定了一道校招题
数组的32场演唱会
详解JS之Arguments对象
JS中可能用得到的全部的排序算法
js 深拷贝 vs 浅拷贝 【扫盲】
你做的拷贝是真的深拷贝吗
Vue.js 2.0 快速上手精华梳理 ,Vue教程 【扫盲】
https://www.w3ctech.com/ 【干货】
等比例缩放的盒子 【干货】
CSS实现长宽比的几种方案 【扫盲】
css中如何做到容器按比例缩放
http://www.javascript.fun/ *
http://dunizb.com/ *
Grid布局学习 【干货】
js实现手机横竖屏事件
前端工程师都有用哪些比较靠谱的小工具?
npm scripts : 每个前端开发都应知道的一些使用提示
CreateJS中文网 *
Hover Buttons *
javaScript的数据结构与算法 【干货】
Alloy周刊
CSS 动画技巧与细节 【干货】
浏览器兼容性问题解决方案 · 总结 【扫盲】
前端每周清单
教你从零开始搭建一款前端脚手架工具
feather - 一个开源的SVG图标库
如何使用GitHub Pages在线加载静态网页
读Zepto源码
用纯CSS实现跳跳球动画
Vue 折腾记
编码过程中,我的常用网站工具
前端实用的在线工具推荐系列
meta 标签大全
通过JS判断网络状态调研及实例demo说明
BetterScroll:在移动端滚动场景的应用
如何用 js 获取虚拟键盘高度?
HTML5 video blob
JavaScript的记忆函数真的可以提升性能吗?
avaScript是如何工作的:内存管理 + 如何处理4个常见的内存泄漏(译)
原生JS实现最简单的图片懒加载
CSS 写作建议和性能优化小结
网站可以一键变色吗?
面试
lensh
微醺岁月
http://yrq110.me/
滴滴FE
路易斯
玩转prototype
前端性能优化之 DOM 篇 【5星级】
https://github.com/yrq110/odds-and-ends
jQuery->JavaScript一览表
2017前端面试题及答案总结|掘金技术征文
JS如何判断一个对象为空
this、apply、call、bind
notebook
从原理到轮子之JS模块化
var head = document.getElementsByTagName('head')[0] || document.body;
function loadJsModule(url) {
var script = document.createElement('script');
script.charset = 'utf-8';
script.type = 'text/javascript';
script.onload = script.onreadystatechange = function() {
if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {
/*
* 加载逻辑, callback为define的回调函数, args为所有依赖模块的数组
* callback.apply(window, args);
*/
script.onload = script.onreadystatechange = null;
}
};
}
史上最全面、最透彻的BFC原理剖析
移动 Web 开发问题和优化小结
JS对象的深浅复制
BetterScroll:可能是目前最好用的移动端滚动插件
vue移动助手实践 【5】
聊聊Vue.js的template编译
为什么 call 比 apply 快?
setTimeout(fn, 0) 的作用
发布-订阅模式
互联网大厂求职面经及总结
js的事件循环
25 个最基本的 JavaScript 面试问题及答案
前端常见跨域解决方案(全)
Websocket
JS 的正则表达式
CSS 伪类选择器
vh,vw单位你知道多少? 【扫盲】
Event Loop
前端性能优化之加载技术 【5星级】
JavaScript Event Loop 机制详解与Vue.js 中 nextTick 【干货】
CSS技巧:逐帧动画抖动解决方案
理解构造函数与原型对象
设计模式系列课程-委托模式实战微博发布功能
Javascript 黑科技 【4星级】
从性能的角度看CSS选择器
【整理】CSS布局方案
getElementsByClassName与classList兼容性问题与解决方案
Ajax知识体系大梳理
Fetch进阶指南
Promise使用手册
你不知道的CSS 【干货】
CSS实现长宽比的几种方案
高性能滚动 scroll 及页面渲染优化 ,函数节流 【干货】
JS面试高级技巧 【干货】
你不知道的JS 【扫盲】
你不知道的CSS(二)
浮动两端对齐 【扫盲】
面试必备之JS继承方式总结 【干货】
整理下《前端江湖面试》对自己有益的题目。
阿里校招前端面经 【干货】
重新认识JS的this
H5拖放和WebWorker 【扫盲】
史上前端面试最全知识点(附答案) 【干货】
JSONP原理及简单实现 【扫盲】
移动端Click点击300毫秒延迟及其解决办法
zepto的tap点透问题
JS开发中的一些小技巧和方法
周末读fastclick.js源码有感 在touchend合成一个事件立即触发解决300ms问题
fastclick是将事件绑定到你传的元素(一般是document.body)
② 在touchstart和touchend后(会手动获取当前点击el),如果是类click事件便手动触发了dom元素的click事件
所以click事件在touchend便被触发,整个响应速度就起来了,触发实际与zepto tap一样
既然浏览器有这300ms的延迟,那么我们来代替浏览器判断,手动触发click事件,这也是fastClick的解决方案。
// 自定义事件
var eve = new Event('自定义事件名');
el.addEventListener('自定义事件名', function(){
console.log('自定义事件')
});
el.dispatchEvent(eve);
//
fastClick的核心代码
FastClick.prototype.onTouchEnd = function(event){
// 一些状态监测代码
// 从这里开始,
if (!this.needsClick(targetElement)) {
// 如果这不是一个需要使用原生click的元素,则屏蔽原生事件,避免触发两次click
event.preventDefault();
// 触发一次模拟的click
this.sendClick(targetElement, event);
}
}
这里可以看到,FastClick在touchEnd的时候,在符合条件的情况下,主动触发了click事件,这样避免了浏览器默认的300毫秒等待判断。为了防止原生的click被触发,这里还通过event.preventDefault()屏蔽了原生的click事件。
我们来看看他是怎么模拟click事件的
FastClick.prototype.sendClick = function(targetElement, event) {
// 这里是一些状态检查逻辑
// 创建一个鼠标事件
clickEvent = document.createEvent('MouseEvents');
// 初始化鼠标事件为click事件
clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
// fastclick的内部变量,用来识别click事件是原生还是模拟
clickEvent.forwardedTouchEvent = true;
// 在目标元素上触发该鼠标事件,
targetElement.dispatchEvent(clickEvent);
我们在网上搜索fastClick,大部分都在说他解决了zepto的点击穿透问题,他是怎么解决的呢?就是上面最后一句,他模拟的click事件是在touchEnd获取的真实元素上触发的,而不是通过坐标计算出来的元素。
读 Zepto 源码
你可能不知道的 border-radius
VS Code 折腾记
浏览器兼容性问题解决方案 · 总结
页面卡顿?操作慢?
margin-right右边距失效
JavaScript 专题之函数记忆
前端精读周刊
封装一个简易的异步队列
JavaScript 异步队列实现及拓展
JavaScript专题之递归
有意思的clip-path
可定制的 CSS 加载动画
https://github.com/microzz
https://lenshen.com/
https://microzz.com/
谦龙
(void 0) 与 undefined 之间的小九九
MVVM —— 如何进行 DOM 的操作
给axios做个挺靠谱的封装
这些Zepto中实用的方法集 【干货】
10个有趣的Javascript和CSS库 【干货】
改写你的checkout input默认样式 【干货】
HTML/CSS/JS编码规范 【扫盲】
写一个挺靠谱的Vue组件 【扫盲】
99%的人都理解错了HTTP中GET与POST的区别
网易前端面经 【干货】
JavaScript异步编程面试题 【干货】
巧用margin/padding的百分比值实现高度自适应(多用于占位,避免闪烁) 【干货】
【当margin/padding取形式为百分比
的值时,无论是left/right,还是top/bottom
,都是以父元素的width
为参照物的!】
阿里校招前端笔试题
koa2进阶学习笔记
Node.js 包教不包会
纯前端实现人脸识别-提取-合成
从零开始教你写一个NPM包
GitHub 开发的首个 Chrome Github代码查看
localStorage 还能这么用
React:
React 高阶组件浅析
React高阶组件实践
从 setState promise 化的探讨
npm 入门教程
Nestjs 文档
Boss-UI 【干货】
从零开始使用vue搭建带有SSR服务端渲染的前后台项目weeklyPlus
React组件类型
[React技术内幕] key带来了什么 【干货】
React技术内幕 【干货】
无状态组件你真的知道
Redux store 的动态注入
理解 React-redux connect
React、Redux与复杂业务组件的复用
koa源码--基础篇
Redux中间件对闭包的一个巧妙使用
总结个人使用过的移动端布局方法
理解和学习mobx-react
探索 React 中 es6 的继承机制
Redux 还是 Mobx,让我来解决你的困惑!
https://github.com/sunyongjian/blog
源码看React setState漫谈
聊聊React高阶组件(Higher-Order Components)
React-Redux源码分析
手把手教你写一个react validator 【表单验证】
React合成事件和DOM原生事件混用须知
Vue:
AT-UI 【干货】
Vue 进阶教程之:非父子组件通信方法(非Vuex)
JavaScript Event Loop 机制详解与Vue.js 中 nextTick 【干货】
从event loop看vue的nextTick 【干货】
从Vue.js源码看异步更新DOM策略及nextTick
Vuejs渡劫系列一:日常开发中必须掌握的细节
HTML5新特性之Mutation Observer,监听DOM变化
深入浅出基于“依赖收集”的响应式原理
剖析vue实现原理,自己动手实现mvvm
vue组件之间的通信
Vue.js数据绑定原理
Vue.js 依赖收集
Vue2.4组件间通信新姿势 【干货】
重复造轮子:从0开始实现Vue数据绑定
MVVM 开发总结 —— Vue 组件
vue 填坑系列总结——scoped 【干货】
从Vue.js源码角度再看数据绑定
用addRoutes实现动态路由
浅谈axios
axios 中文文档 翻译
处理 Vue 单页面 Meta SEO的另一种思路
说说VNode节点(Vue.js实现)
日常开发中必须掌握的细节
基于 vuejs 2.0 轻量级的 ui组件库
Vue.js 2.0 组件级懒加载方案
Vuex 源码分析
VirtualDOM与diff(Vue实现)
性能优化之组件懒加载: Vue Lazy Component 介绍
vue IOS一个页面阻塞问题的排查过程
VueJS 开发常见问题集锦
Vue.js源码——事件机制
Vuex2.0源码解析