Skip to content

Instantly share code, notes, and snippets.

View naumstory's full-sized avatar
👨‍🎨
Infinite creating

Dmitry Naumenkov naumstory

👨‍🎨
Infinite creating
View GitHub Profile
@naumstory
naumstory / _globals.js
Created November 21, 2020 15:00
Автоматическая регистрация компонентов Vue.js
/*
Благодаря этому, частоиспользуемые компоненты не нужно будет регистрировать каждый раз.
Они будут зарегестрированы глобально.
*/
/*
1. Создаём файл _globals.js в папке components с содержимым:
*/
import Vue from 'vue'
@naumstory
naumstory / Icon.vue
Created November 21, 2020 14:57
Инлайн SVG иконки для Vue.js
<script>
export default {
name: 'Icon',
props: {
name: {
type: String,
required: true,
},
@naumstory
naumstory / px-to-rem.scss
Last active December 6, 2020 08:57
Функция «rem» для конвертации пикселей в rem
@function rem($px) {
@return ($px / 16) + rem;
}
@naumstory
naumstory / get.js
Last active December 12, 2019 09:22
Javascript. Поиск вложенного значения объекта по строке типа "foo.bar"
function get(object, string) {
string = string.split('.')
string.forEach(el => object = object[el])
return object
}
// Example
let hello = {
one: 'name',
two: {
@naumstory
naumstory / is-webp.js
Created September 24, 2019 12:21
Определение поддержки WebP через js
// функция возвращает либо true, либо false
function checkWebpFeature(callback) {
let img = new Image();
img.onload = () => {
var result = (img.width > 0) && (img.height > 0);
callback(result); // если загрузилось :)
};
img.onerror = () => {
callback(false); // если не загрузилось :(
};
@naumstory
naumstory / get-url-variable.js
Created September 24, 2019 12:09
Получение переменных из URL через js
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
// https://example.com/?page=3&modal=wrap123
//
@naumstory
naumstory / user-geo.php
Created September 24, 2019 12:07
Определение страны/города пользователя
<?php
$ip = $_SERVER['REMOTE_ADDR'];
include("SxGeo.php"); //одноимённый сайт, там скачиваем файл (первый в списке загрузок)
$SxGeo = new SxGeo('SxGeoCity.dat'); //этот файл с таким же заголовком, для определения города
$city = $SxGeo->getCity($ip); // возвращает с краткой информацией, без названия региона и временной зоны
$countryid = $SxGeo->getCountryId($ip); //возвращает номер страны
$country = $SxGeo->getCountry($ip); // возвращает двухзначный ISO-код страны
$region = $SxGeo->getCityFull($ip); // возвращает Область
@naumstory
naumstory / sticky-menu.js
Last active September 24, 2019 12:06
«Правильное» стики-меню. При скролле вниз прячется, а при скролле вверх появляется
let pageHeader = document.getElementById('page-header'),
pageTitle = document.getElementById('page-title');
let windowPosition = 0;
window.onscroll = function() {
header(window.pageYOffset);
}
function header(scrollTop) {
@naumstory
naumstory / clicker-mif.js
Created September 24, 2019 12:04
Скрипт для кликера «Манн Иванов Фербер»
setInterval(() => {document.querySelector('.clicker-book__catcher').click();}, 100);
// https://www.mann-ivanov-ferber.ru/clicker/
@naumstory
naumstory / scroll-to-anchor.js
Last active September 24, 2019 12:02
Плавный переход к якорям на jQuery
$('a[href^="#"]').on('click', function(event) {
event.preventDefault();
let sc = $(this).attr("href"),
dn = $(sc).offset().top;
$('html, body').animate({scrollTop: dn}, 1000);
});