Skip to content

Instantly share code, notes, and snippets.

@andrIvash
andrIvash / app.js
Created July 13, 2017 20:49 — forked from dstroot/app.js
Gulp, BrowserSync, Node, and Nodemon all working in harmony. ;)
/**
* World's simplest express server
* - used to serve index.html from /public
*/
var express = require('express');
var serveStatic = require('serve-static');
var app = express();
app.use(serveStatic(__dirname + '/public'));
@andrIvash
andrIvash / bodyparser.js
Last active July 13, 2017 19:35
Node Send form example with bodyParser
// ajax.js ---------------------------- сторона клиента
function get(url, data) {
return new Promise(function(resolve, reject) {
var req = new XMLHttpRequest();
req.open('POST', url);
req.setRequestHeader('content-type', 'application/json'); // очень важно укзать заголовок !!!
req.onload = function() {
if (req.status == 200) {
resolve(req.response); // в случае успеха получаем ответ сервера
}
@andrIvash
andrIvash / preload.js
Created July 9, 2017 16:24
preloader
/*!
* JavaScript preload() function – http://mths.be/preload
* Preload images, CSS and JavaScript files without executing them
* Script by Stoyan Stefanov – http://www.phpied.com/preload-cssjavascript-without-execution/
* Slightly rewritten by Mathias Bynens – http://mathiasbynens.be/
*/
function preload(array) {
var length = array.length,
document = window.document,
//Lasy load by David Walsh
/*
<img data-src="/path/to/image.jpg" alt="">
img {
opacity: 1;
transition: opacity 0.3s;
}
@andrIvash
andrIvash / hidden.js
Created June 14, 2017 15:46
is it hidden elem or not
function isHidden(elem) {
return !elem.offsetWidth && !elem.offsetHeight;
}
@andrIvash
andrIvash / truncate2.js
Created May 15, 2017 14:02
truncate 2 - замена конца текста на ...
// которая проверяет длину строки str, и если она превосходит maxlength – заменяет конец str на "...",
// так чтобы ее длина стала равна maxlength.
function truncate(str, maxlength) {
if (str.length > maxlength) {
return str.slice(0, maxlength - 3) + '...';
// итоговая длина равна maxlength
}
return str;
@andrIvash
andrIvash / truncate.js
Created May 15, 2017 13:59
truncate - перевод строки
function truncate(str, maxlength) {
if (str.length > maxlength) {
var arr = str.split(''),
count = arr.length / maxlength | 0,
result = '';
for (var i=1; i<= count; i++) {
var part = '';
if(arr[i * maxlength] !== ' ') {
part = arr.splice(0, i * maxlength + 1);
@andrIvash
andrIvash / multirequest.js
Created April 20, 2017 20:11
Chain multiple Node http request
var rp = require('request-promise')
var url1 = {}
var url2 = {}
var url3 = {}
rp(url1)
.then(response => {
// add stuff from url1 response to url2
return rp(url2)
@andrIvash
andrIvash / declOfNum.js
Created April 18, 2017 16:33
Склонение названия элементов в зависимости от количества
export default function declOfNum(number, titles) {
const cases = [2, 0, 1, 1, 1, 2];
return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];
}
// declOfNum(11, ['фотография','фотографии','фотографий']) => фотографий
@andrIvash
andrIvash / priceFormat.js
Created April 18, 2017 16:31
Правильный вывод цены по разрядам
export default function priceFormat(price) {
const arr = [];
String(price).split('').reverse().forEach((c, i) => {
if (i % 3 === 0 ) {
arr.push(' ')
}
arr.push(c)
});
return arr.reverse().join('').trim()
}