Skip to content

Instantly share code, notes, and snippets.

View VitalyKondratiev's full-sized avatar

Vitaly Kondratiev VitalyKondratiev

View GitHub Profile
@VitalyKondratiev
VitalyKondratiev / block_slidedown.js
Last active October 10, 2017 12:31
Плавное "выезжание" блока при скролле страницы
$(document).ready(function (){
$('.for-slidedown').addClass('slidedown-ready')
$(window).on('scroll', function (event) {
$('.for-slidedown.slidedown-ready').each(function () {
if (window.innerHeight + window.pageYOffset >= $(this).offset().top) {
$(this).removeClass('slidedown-ready');
}
});
});
});
@VitalyKondratiev
VitalyKondratiev / bootstrap_hover_dropdowns.js
Last active November 9, 2017 07:33
Открытие выпадающих списков по наведению (Bootstrap)
function is_touch_device() {
try {
document.createEvent("TouchEvent");
return true;
} catch (e) {
return false;
}
}
if (is_touch_device) return;
$('.pane-system-main-menu .nav .dropdown .dropdown-toggle').hover(function() {
@VitalyKondratiev
VitalyKondratiev / get_image_pixel_hex_color.js
Last active November 14, 2017 12:19
Цвет пикселя изображения под курсором
function get_image_pixel_hex_color(){
var img = event.path[0];
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);
var pixelData = canvas.getContext('2d').getImageData(event.offsetX, event.offsetY, 1, 1).data;
var hexColor = ('#' +
(pixelData[0].toString(16).length == 2 ? pixelData[0].toString(16) : '0' + pixelData[0].toString(16))+
(pixelData[1].toString(16).length == 2 ? pixelData[1].toString(16) : '0' + pixelData[1].toString(16))+
@VitalyKondratiev
VitalyKondratiev / jquery.parallaxBackground.js
Last active November 16, 2017 06:23
Параллакс фоновой картинки элемента
(function ($) {
jQuery.fn.parallaxBackground = function (options) {
options = $.extend({
min: 0,
max: 100,
speed: 1
}, options);
var previousScroll = 0;
var directionScroll;
@VitalyKondratiev
VitalyKondratiev / LaravelSeed-JavaScript.html.js
Created November 18, 2018 16:09
Экстрактор JetBrains DataGrip для создания Laravel Seeds
var LINE_FEED = "\n";
var LINE_TABULATION = "\t";
var TABLE_NAME = (TABLE !== null ) ? TABLE.getName() : 'table';
function output() {
for (var i = 0; i < arguments.length; i++) {
OUT.append(arguments[i]);
}
}
@VitalyKondratiev
VitalyKondratiev / functions.php
Created November 29, 2018 15:53
Wordpress taxonomy menu (wp_get_nav_menu_items hook)
add_filter("wp_get_nav_menu_items", function ($items, $menu, $args) {
$menu_id = 21; // Wordpress Menu ID
$menu_item_id = 48; // Wordpress Menu Item ID
$taxonomy_name = 'product_cat'; // Wordpress Taxonomy Code
$max_depth = 3; // Maximum level of menu depth
if( $menu->term_id != $menu_id || is_admin()) return $items;
$get_nav_from_terms = function (&$items, $terms, $parent_menu_id, $order, $depth = 1) use ($max_depth, &$get_nav_from_terms) {
if ($depth > $max_depth) return;
foreach ($terms as $term) {
$item = new stdClass();
@VitalyKondratiev
VitalyKondratiev / images_in_row.js
Created September 9, 2016 05:32
Выравнивание изображений в один ряд (чистый JS)
function images_in_row(selector) {
var galleries = document.querySelectorAll(selector);
var galleryMarginWidth = 5;
Array.prototype.forEach.call(galleries, function(gallery, index) {
var images = gallery.getElementsByTagName("img");
if (images.length == 0) {
return;
}
var galleryWidth = parseFloat(getComputedStyle(gallery).width).toFixed(2);
var galleryUsableWidth = galleryWidth - (galleryMarginWidth * images.length * 2);
@VitalyKondratiev
VitalyKondratiev / dl_require_template.js
Last active January 23, 2019 16:27
Loading modules from NPM at runtime
dl_require(['beauty', 'moment']).then(_modules => {
/* Demo data end */
var beauty = _modules.beauty;
var moment = _modules.moment;
beauty.beautifyConsole();
console.log('log:', 'you can put your code here');
console.info('info:', moment().format("dddd, MMMM Do YYYY, h:mm:ss a"));
/* Demo data end */
});
@VitalyKondratiev
VitalyKondratiev / proxylist.js
Created January 30, 2019 16:26
Getting list of working proxies on Node.js (node module, promise)
const osmosis = require('osmosis');
module.exports = function () {
return new Promise(function (resolve, reject) {
let proxies = [];
osmosis
.get('https://free-proxy-list.com/?search=1&up_time=60')
.find('.proxy-list tbody tr td:first-child a')
.set({ 'data': '@title' })
.error(error => reject(proxies))
.data(data => proxies.push(data.data))
@VitalyKondratiev
VitalyKondratiev / get_object_by_property_value.cs
Last active February 10, 2019 17:01
Get object by value of selected property
object GetObjectByName<T>(string needle, T[] objs, string propertyName = "")
{
foreach (T obj in objs)
{
/*
* For string objects uses string value
* For another objects property searched by given string
* If property not found, uses obj.ToString() value
*/
string searched_value;