Skip to content

Instantly share code, notes, and snippets.

View kayac-chang's full-sized avatar
:octocat:
kirby

Kayac Hello kayac-chang

:octocat:
kirby
View GitHub Profile
@kayac-chang
kayac-chang / Timer.js
Last active September 8, 2019 06:17
PressHold: Execute function once at first time. And after 1 second will execute the function on every frames.
function Timer() {
const start = performance.now();
return function get() {
return performance.now() - start;
};
}
@kayac-chang
kayac-chang / observe.js
Created September 7, 2019 10:03
Simple Object property Observer
const {defineProperty} = Object;
function observe({key, value, onChange}, it) {
const descriptor = {
get() {
return value;
},
set(newValue) {
value = newValue;
@kayac-chang
kayac-chang / throttleBy.js
Created September 7, 2019 07:38
Throttle by async function call
function throttleBy(func) {
let skip = false;
return async function call(...args) {
if (skip) return;
skip = true;
const result = await func(...args);
function triggerMask() {
// 1. 找到遮罩
let mask = document.getElementById("mask")
// 2. 當我滑到 多少高度時
let flag = window.scrollY >= 50
// 把遮罩打開
mask.style.display = flag ? "none" : "block"
function createMaskElement() {
// 1. 做一個空的 <p> 充當我們的 offset
let offset = document.createElement("p")
// 這行其實可以省略
offset.innerHTML = ""
// Browser Default 都會給 Element margin 16px , 這裡為了保持數據上的乾淨 , 直接歸零
offset.style.margin = "0"