Skip to content

Instantly share code, notes, and snippets.

View glebcha's full-sized avatar
👨‍💻
do my best

Gleb glebcha

👨‍💻
do my best
View GitHub Profile
@glebcha
glebcha / list_cookies
Created August 30, 2013 10:42
List all cookies for domain in list
function listCookies() {
var theCookies = document.cookie.split(';');
var aString = '';
for (var i = 1 ; i <= theCookies.length; i++) {
aString += i + ' ' + theCookies[i-1] + "\n";
}
return aString;
}
@glebcha
glebcha / domSelector.js
Created September 16, 2013 07:08
jQuery-like vanilla.js selector
function $$(selector){
return Array.prototype.slice.call(document.querySelectorAll(selector), 0);
}
$$('div').length
var arr = [];
var testValues = function(value) {
return /keyword_here/.test(value);
};
var addPrefix = function(value) {
return 'prefix '+value;
};
function do_smth_with_arguments(/* lots of arguments here */){
var args = Array.prototype.reverse.call(arguments);//call array method whatever you like
for(var i=0; i<args.length; i++){
alert(args[i]);//do whatever you want with each argument passed
}
};
do_smth_with_arguments.apply(null, ['one','two','three']);//null points to 'this' context
@glebcha
glebcha / drop-to-cart.js
Last active December 29, 2015 12:29
Simple "drop to cart" animation used for small shop and copied as is.
$.fn.toCart = function (options) {
var _settings = $.extend({
duration: 1000,
callback: function () {}
}, options);
return this.each(function () {
var _ = $(this),
_target = $(_settings.target),
_clone = _.clone(false).height(_.height());
@glebcha
glebcha / thumb-popup.js
Created November 27, 2013 04:22
Simple full-size preview popup.
var thumbModal = function (thumbs, fullImgContainer) {
for (var i = 0; i < thumbs.length; i++) {
var thumb = thumbs[i];
var show = function (event) {
event.preventDefault();
var imgBlock = this.querySelector(fullImgContainer);
if (imgBlock.style.display != 'block') {
$(fullImgContainer).hide();
$(imgBlock).fadeIn(500);
} else {
@glebcha
glebcha / pseudo-accordion.js
Created November 27, 2013 04:26
Pseudo-accordion used to open/hide FAQ questions, copied as is and can be implemented easily.
var animatedQuestions = function () {
var questions = $('.question-outer');
if (questions.length !== 0) {
var openQuestion = function (event) {
event.preventDefault();
var target = event ? event.target : window.event.srcElement;
var parent = target.parentNode.parentNode.parentNode;
var qshort = parent.children[0];
var qfull = parent.children[parent.children.length-1];
$(qfull).slideDown().delay(500);
@glebcha
glebcha / parse JSON.js
Last active August 29, 2015 13:56
Parse JSON array and create multi-dimensional array
var jsonObj = [{"forget":"me","leave":"alone"}, {"take":"them", "not":"him"}];
var arr = [];
for(var i = 0; i < jsonObj.length; i++) {
var val = jsonObj[i];
var def = Object.keys(val);
//console.log("all keys: " + def);
for(var j = 0; j < def.length; j++) {
arr.push([ def[j], val[def[j]] ]);
@glebcha
glebcha / words array.js
Created February 5, 2014 08:48
Get array from string with words separated with comma
var text = "one, two";
var text1 = text.split(",");
Array.prototype.slice.call(text1).map(function(item) {
return item.replace(" ", "");
});