巧妙监测元素尺寸变化February 15, 2021

这个方法的主要思想是在被监测元素里包裹一个跟元素位置大小相同的隐藏块。隐藏块可以滚动,并有一个远远大于它的子元素。当被监测元素尺寸变化时期望能触发隐藏块的滚动事件。

#Recommended#Resize#闲读源码#闲读规范

prototype 与 __proto__ 的爱恨情仇November 18, 2020

先理解两者的一个本质区别,prototype 是函数独有的,是人为设定的;__proto__ 是所有对象都有的,是继承的。

#Recommended#Understanding JavaScript#闲读规范

Get All Images in DOM (including background)October 14, 2020

To get all the images in DOM there are actually three places we are going to look at: <img> element, background-image CSS property and, <iframe>. Yes, every iframe hides a magical kingdom.

#Recommended#Image#JavaScript#DOM

Progressive background-image With EaseJuly 29, 2020

Everyone likes smooth loading. Lately I tried to make the background-image of the menu to load progressively(also to the cover if you view the blog on mobile).

#CSS#Image#Progressive Image#GraphicsMagick#Recommended

JavaScript this 的六道坎May 13, 2020

鉴于this风骚的运作方式,对this的理解是永不过时的话题,本文试图通过将其大卸六块来钉住这个磨人的妖精。

#Understanding JavaScript#This#Recommended

JavaScript 有必要缓存 for 循环中的 Array.length 吗?March 18, 2020

先上笔者得到的结论:缓存 Array.lengh 对优化影响不大,甚至会减慢。

#Recommended#Understanding JavaScript#JavaScript#Array

SVG Symbol 和 Sprite 的好处和坑October 07, 2019

用 Symbol 来把 SVG 合并到一个文件几乎是现在最流行的用法

#Image#SVG#Sprite#Recommended

定位与拖动 iframeJune 26, 2019

用户选择一段文本之后,会在鼠标附近显示一些元素。 这个初看很简单,监听一个 mouseup 事件,获取 clientX 和 clientY 就行。但这个方法有个缺陷:iframe 里的鼠标事件不会传到父窗口上。解决方法也很简单,就难在把它们都联系起来。

#Recommended#iframe#JavaScript#postMessage#Drag#Extension

Manacher 马拉车算法November 21, 2018

马拉车算法可以在线性时间复杂度内求出一个字符串的最长回文字串。其核心思想跟 KMP 相似,即反复利用已掌握的情况。

#Manacher#算法#Algorithms#回文#Palindrome#字符串#String#Recommended

选中鼠标附近的文字June 22, 2018

选中鼠标附近的文字摸索记录。

#JavaScript#Recommended

获取 DOM 里所有图片(包括背景和iframe)March 09, 2017

在写浏览器扩展什么的时候可能会用上。 获取 DOM 里的图片主要是在这几个地方里面找: <img> 元素, background-image CSS 属性和 <iframe>。 img 如果只想获取 <img> 的图片,有两种方式: 直接获取所有 img 标签: 还可以用 document.images: background-image 获得背景图片需要查看所有 DOM…

#Recommended#Image#JavaScript#DOM

深入 ES2015 默认参数January 22, 2017

S2015 为函数加入了方便的默认参数语法。

#TDZ#Understanding JavaScript#Function#Parameters#Arguments#Recommended

eat();

sleep();

code();

repeat();