Skip to content

Instantly share code, notes, and snippets.

function trace(...args) {
if (window.console) {
const context = window === this ? console : this;
return (console.trace || console.log).apply(context, args);
}
}
// Accelerometer https://gist.github.com/videlais/8122721
// Modernizr
// jQuery
/**
*
* @param {string|HTMLElement|JQuery} blockSelector
* @param {string} layersSelector
* @param {number} [mobileStrength] sensitive from 0 to 1
*/
;(function () {
/**
*
* @type {function[]}
*/
var onScrollCallbacks = [];
$(window).on('scroll', function onScroll() {
$.each(onScrollCallbacks, function each(index, callback) {
callback();
@zolotykh
zolotykh / queue.js
Last active December 12, 2016 08:21
queue
/**
* queue(window, ['hello', 'queue'], [alert, console.log])
*
* @param {object} ctx context
* @param {Array} fnArgs arguments
* @param {Array} arguments callbacks
*/
function queue(ctx, fnArgs) {
"use strict";
@zolotykh
zolotykh / designModeForChrome.js
Created September 26, 2016 08:38
Добавить код в виде ссылки для закладки в Chrome, кликнув на любой странице включается режим "редактирования", повторное нажатие выключает.
javascript:(function(){document.designMode=('off'===document.designMode?'on':'off')})()
<!DOCTYPE html>
html(lang="en")
head
meta(charset="UTF-8")
title Document
body
h1 Sticky footer
footer.ft footer
var animation = animate({
duration: 1000,
frames: 25,
fn: function animationFunction(){}
});
animation.active();
animation.inactive();
function animate(item) {
/*
* <element tabs='{"contentActiveClass": "active", "linkActiveClass": "active"}'>
* $('[data-tabs']).simpleTabs();
*
* <element tabs>
* $('[data-tabs']).simpleTabs({contentActiveClass: "active", linkActiveClass: "active"});
*
* <element id="some-id">
* $('#some-id).simpleTabs({contentActiveClass: "active", linkActiveClass: "active"});
*
function reachGoalFor(counterId, ...args) {
const Counters = window.Ya && Ya._metrika && Ya._metrika.counters || [];
const isFirstArgumentRealCounter = counterId && counterId.reachGoal;
const trackCounter = function trackCounter(counter, ...dynamicArgs) {
let _args = dynamicArgs.length && dynamicArgs || args;
if (_args.length) {
counter.reachGoal.apply(counter, _args);
}
/**
* @link https://gist.github.com/zolotykh/3879b7d2354d1de1f57f4b44c4a08821/f30ee1df0be25d619050e312aa2d4ae917330b25
*/
yaTrack(null, 'GOAL_NAME', {key: 'value'}); // во все счетчики
yaTrack(98765431, 'GOAL_NAME'); // в конкретный id счетчика
yaTrack('98\\d65431|87654\\d{3}', 'GOAL_NAME'); // regex
yaTrack(yaCounter987654321, 'GOAL_NAME'); // наиболее безопасен с точки зрения того, что window.Ya._metrika может измениться
// yaTrack возвращает коллбэк для быстрого пуша