Skip to content

Instantly share code, notes, and snippets.

View Caldis's full-sized avatar
🎯
    ¯\_(ミ)_/¯   

Caldis_Chen Caldis

🎯
    ¯\_(ミ)_/¯   
View GitHub Profile
@Caldis
Caldis / PingAnPAC.list
Last active November 2, 2018 06:54
PingAn-PAC
# DirectVPN
IP-CIDR,10.22.68.0/22,DIRECT
IP-CIDR,10.22.96.0/20,DIRECT
IP-CIDR,10.63.11.0/24,DIRECT
IP-CIDR,10.22.72.0/23,DIRECT
# Prdproxy
DOMAIN-SUFFIX,sks-yl.pa18.com,PA-10.35.29.28
DOMAIN-SUFFIX,sks-cx.pa18.com,PA-10.35.29.28
DOMAIN-SUFFIX,sks-sx.pa18.com,PA-10.35.29.28
@Caldis
Caldis / getWikipediaRelatedTopics.js
Last active August 13, 2018 10:55
Get Wikipedia Related Topics
// 从给定范围内选择有效链接
function findValidLinkTags(fragement, type) {
let linkTags = []
switch(type) {
case "wikiwand":
linkTags = fragement.querySelectorAll(".int-link")
break
case "wikipedia":
linkTags = fragement.querySelectorAll("a")
break
@Caldis
Caldis / bind.js
Last active July 26, 2018 09:30
实现一个 Bind 函数
Function.prototype.b = function(env, arg) {
// 从 arg 中去掉 evn, 取出 bind 的附加参数
// arguments 为非典型数组, 没有 slice 方法, 需要这样调用来裁剪并转换为数组
const arg = Array.prototype.slice.call(arguments, 1)
// 保存当前的上下文
const context = this
// 返回 bind 后的函数
const func = function(bindArg) {
// 接收到 bind 后的函数调用后, 先拼接新的参数到原先的 bind 的附加参数后面
// Array.prototype.slice.call(bindArg) 可将 bindArg 转换为数组并拼接
@Caldis
Caldis / smoothScroll.js
Last active March 16, 2018 13:48
Capture and smooth the scrolling for target dom
const view = document.querySelector("#page>div")
class scroll {
constructor({ target, interpulator, precision }) {
// values
this.target = target // 目标
this.precision = precision // 精确度
this.interpulator = interpulator // 插值器
this.timer = null // 计时器引用
this.looping = false // 是否正在循环
@Caldis
Caldis / lerp.js
Last active February 23, 2018 09:29
Lerp curve by echart
var transition = 0.14
var threshold = 0.001
var y = [], x = []
var current = 0.01
var target = 1
// Demo Curve
// Lerp Curve
@Caldis
Caldis / compare.js
Created March 23, 2017 15:40
compare
默认显示 - LP
Optional([{
kCGWindowAlpha = 1;
kCGWindowBounds = {
Height = 1080;
Width = 2560;
X = "-412";
Y = "-1080";
};
kCGWindowIsOnscreen = 1;
@Caldis
Caldis / GlobalEvent.js
Created March 1, 2017 17:11
GlobalEvent.js
// 全局事件工具类
// 放全局事件的对象
const eventDOM = document.querySelector('html');
// 全局事件的数据
window["eventOBJ"] = {}; const eventOBJ = window.eventOBJ;
// 全局事件的回调函数引用
window["eventCAB"] = {}; const eventCAB = window.eventCAB;
export const GlobalEvent = {
// 添加对应事件的 Handler
addEventHandler: (type, handler, cleanBeforeAdd) => {
@Caldis
Caldis / jQueryClassAnim.js
Created February 18, 2017 06:40
jQueryClassAnim.js
function addAnimateClass(target, animClass, interval, duration, removeAfterAnim, callback) {
// 清掉类名和定时器
target.each(function(){
$(this).removeClass(animClass);
});
// 添加动画类
target.each(function(i){
var t = $(this);
setTimeout(function() {
t.addClass(animClass);
@Caldis
Caldis / jQueryVelocity.js
Last active February 17, 2017 16:19
jQueryVelocity.js
// 对传入的jQuery对象执行序列动画, 依次执行序列动画,然后执行回调函数
// target: jQuery对象
// before:动画的初始状态
// after:动画的结束状态
// interval:每个动画之间的间隔
// duration:单个动画的持续时间
// callback:执行完序列中最后一个动画后的回调函数
function animVelocity(target, before, after, interval, duration, callback) {
target.each(function(i){
var t = $(this);
@Caldis
Caldis / 解决OSX外接21:9显示器无法全屏的问题.md
Last active December 18, 2016 06:19
解决OSX外接21:9显示器无法全屏的问题

##解决OSX外接21:9显示器无法全屏的问题

使用 SwitchResX 即可单独设置外接显示器分辨率  

注: SwitchResX 只有10天的试用时间, 也不会有提示, 如果超过试用时间后即无法修改货保存已有设置或新增设置, 此时可以新建一个用户, 然后在其中修改设置