Skip to content

Instantly share code, notes, and snippets.

@egorvinogradov
egorvinogradov / _top-1000-english-words.js
Last active December 10, 2015 08:38
1000 самых популярных английских слов, взятые с http://www.en365.ru/top1000.htm, отсортированные по алфавиту и подготовленные в удобном для печати виде (top-1000-english-words.html).
function tableToArray(selector){
var data = [];
var rows = Array.prototype.filter.call(
document
.querySelectorAll(selector)[0]
.getElementsByTagName('tr'),
function(row){
return row.className !== 'header';
}
);
@egorvinogradov
egorvinogradov / console.time.js
Last active August 10, 2023 18:42
Cross-browser console.time, console.timeCapture & console.timeEnd implementation.
if ( console && console.log ) {
console._timeStamps = {};
console.time = function(name){
console._timeStamps[name] = new Date();
console.log(name + ': ' + console._timeStamps[name]);
};
console.timeCapture = function(name){
@egorvinogradov
egorvinogradov / loadstatic.js
Created January 24, 2013 10:23
Loading static files without caching in browser.
// Usage: loadStatic(staticFiles);
var staticFiles = [
'//cdn.example.com/jquery.js',
'//example.com/static/css/common.css'
];
function loadStatic(files){
files.forEach(function(file){
var tag;
@egorvinogradov
egorvinogradov / console.timelog.js
Last active December 11, 2015 21:39
Useful console.log patch for Chrome showing how much time have been passed since last time console.log was run.
/*
console.log output example:
=====================================================================================
Date Total Diff Message
=====================================================================================
Wed Jan 30 2013 3:3:47:376 0ms 0ms start
Wed Jan 30 2013 3:3:47:382 6ms +6ms started hotels loading
Wed Jan 30 2013 3:3:47:502 126ms +120ms loaded: /optimizely/main.js (1)
function ajax(params){
var request = new XMLHttpRequest();
var responseTimer;
function handleError(e){
console.error('Can\'t load data:', e.message, e);
params.error && params.error(e);
};
request.open(params.method || 'GET', params.url, true);
request.onreadystatechange = function(){
if ( request.readyState === 4 ) {
@egorvinogradov
egorvinogradov / gist:4739343
Created February 8, 2013 14:31
Делает одинаковой ширину соответствующих колонок у таблиц, идущих друг под другом.
function get_max_width_array(tables){
var max_width_arr = [];
tables.each(function(i, table){
$(table).find('tr').first().find('th, td').each(function(i, td){
var width = $(td).width();
if ( !max_width_arr[i] || max_width_arr[i] < width ) {
max_width_arr[i] = width;
});
});
return max_width_arr;
@egorvinogradov
egorvinogradov / gist:4773119
Created February 12, 2013 20:32
Возвращает все комбинации чисел из массива, дающие в сумме 10.
// Все комбинации чисел из массива, дающие в сумме 10
// getCombinations([2,4,6,5,1]) // -> 4,6 и 4,5,1
function getCombinations(array){
var allCombinations = [];
function getLevelCombinations(arr, indexes){
console.log('combinations > ', stringifyCombinations(allCombinations).split('\n'));
<div id="yandex_ad"></div>
<script type="text/javascript">
(function(w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Direct.insertInto(108006, "yandex_ad", {
site_charset: "utf-8",
ad_format: "direct",
@egorvinogradov
egorvinogradov / fixCaptions.css
Last active December 14, 2015 13:08
jQuery-плагин для широких таблиц (шире экрана), при использовании которого первый столбец таблицы с названиями полей начинает двигаться вслед за горизонтальным скролом.
.fixed-captions {
display: none;
position: absolute;
background: #CDCDCD;
border-spacing: 1px;
margin-top: 1px;
box-shadow: 5px 0 6px rgba(0,0,0,.2);
}
.fixed-captions td {
// Плагин
$.fn.extend({
fixFilterWidth: function(){
this.hide().each(function(i, el){
var input = $(el);
var margins = +input.css('marginLeft').replace(/px$/, '') +
+input.css('marginRight').replace(/px$/, '') +
+input.css('borderLeftWidth').replace(/px$/, '') +
+input.css('borderRightWidth').replace(/px$/, '');
var width = input.parent().width() - margins;