JavaScript библиотека

описание функций

Совместимость с браузерами: agwd.js

Настольные Мобильные
Internet Explorer Edge Chrome Opera Firefox Safari Chrome Android Opera Android Firefox for Android Safari on iOS Samsung Internet WebView Android
10+ 12+ 1+ 7+ 1+ 1.1+ 18+ 10.1+ 4+ 1+ 1.0+ 4.4+

Числа:

isInteger(data)

Проверяет, является ли переменная data целым числом, если да, вернёт true, иначе false.

isFloat(data)

Проверяет, является ли переменная data числом с плавающей точкой, если да, вернёт true, иначе false.

isNumeric(data)

Проверяет, является ли переменная data любым числом, если да, вернёт true, иначе false.

toInt(str, d)

Приводит строку str к целому числу с проверкой. Если строка не может быть преобразована, вернёт число из аргумента d или 0, если аргумент d отсутствует.

toFloat(str, d)

Приводит строку str к дробному числу с проверкой. Если строка не может быть преобразована, вернёт число из аргумента d или 0, если аргумент d отсутствует.

withNull(n)

Вернёт число n в виде строки с ведущим нулём, если оно меньше 10. Может использоваться для вывода компонентов даты на экран.

positiveNumber(n)

Вернёт только положительное число n. При отрицательных значениях, вернёт это же число, но без знака минус (модуль числа).

randomInt(min, max, exclude)

Возвращает случайное число из диапозона целых чисел min - max. В агрумент exclude, можно передать число или одномерный массив с числами, которые следует исключить из результата. Например:

var r = randomInt(1, 10, 5);

Вернёт случайное число от 1 до 10, но это будет не 5.

Строки:

isString(data)

Проверяет, является ли переменная data строкой, если да, вернёт true, иначе false.

removeSpaces(string)

Вернёт строку string без пробелов.

cleanDoubleSpaces(string)

Вернёт строку string, где будут убраны все двойные пробелы.

strReplace(search, replace, string)

Вернёт строку string, где будут заменены все вхождения search, на строку в replace. Аргумент search, может быть одномерным массивом, с перечислением строк.

trimmString(string, length, end, space)

Вернёт строку string укороченную до указанного количества символов в аргументе length (целое число). В аргумент end можно передать строку, которая будет добавлена в конец обрезанной строки string, например: "...". Не пустой аргумент space, указывает на то, что строку необходимо укоротить до последнего пробела, оставляя слова целыми. Если аргумент string пуст или содержит недопустимое значение (не строку), функция вернёт пустую строку. При недопустимом значении в аргументе length (не число) или значение превышает количество символов в string, будет возвращена исходная строка string.

removeAllUnnecessary(string, r)

Вернёт строку string, где будут убраны все символы, которые не являются буквами и цифрами или заменит их на строковое значение в аргументе r. Может использоваться для поисковых запросов.

isCyrillic(string)

Вернёт true, если строка string содержит кириллические символы, иначе false.

randomStr(count, numbers)

Возвращает случайный набор латинских букв в разном регистре. Требуемое кол-во символов можно задать в аргументе count (по умолчанию 8). Аргумент numbers (true) указывает, что в строку результата должны быть включены и цифры. Может применяться в качестве генератора паролей.

Массивы:

isArray(data)

Вернёт true, если переменная data является массивом или объектом, иначе false.

inArray(value, array)

Вернёт true, если значение в аргументе value присутствует в одномерном массиве или объекте array.

inArrayKey(key, array)

Вернёт true, если ключ из аргумента key присутствует среди ключей в массиве или объекте array. Проверяет рекурсивно во всех вложенных массивах (объектах).

arrayMax(array)

Возвращает максимальное значение из одномерного массива array с числами. Например:

var max = arrayMax([1, 9, 3]);

Результатом будет 9.

arraySize(array)

Возвращает количество элементов в массиве или объекте array в виде целого числа. При передаче многомерного массива, подсчёт ведётся только среди элементов первого уровня.

arrayEmptyFilter(array, n)

Вернёт массив array без пустых элементов. При не пустом аргументе n, ноль (0) будет считаться не пустым значением. Функция работает и с многомерными массивами (объектами).

arrayPop(array, i)

Вернёт значение последнего элемента массива array. При передаче аргумента i в виде челого числа, вернёт значение элемента, отсчитанное с конца массива, начиная с 1. Например:

var v = arrayPop([1, 2, 3, "a", "b", "c", "d"], 2);

Результатом будет "c".

Если число в аргументе i превышает количество элементов в массиве или в array передано недопустимое значение (не массив), функция вернёт пустую строку.

arrayMerge(a, b, plus, separator)

Выполняет слияние двух массивов или объектов a, b. При совпадении ключей, значения элементов будут заменены на значения из массива a. В аргумент plus, можно передать ключ в виде строки/числа или одномерный массив с ключами, значения которых необходимо сложить при совпадении ключей. Аргумент separator может содержать разделитель строк если потребуется сложть стоковые значения.

Пример:

var a = arrayMerge({key: "a"}, {key: "b"}, "key", ",");

результат: {key: "a,b"}

Или:

var a = arrayMerge({key: 1}, {key: 2}, "key");

результат: {key: 3}

При передаче недопустимых значений в аргументах a и b, функция вернёт пустой массив. Если недопустимое значение только в одном из этих аргументов, будет возвращён единственный исходный массив без изменений.

arrayToStruct(a, b)

Приводит массив a к структуре массива b. Убирает из массива a отсутствующие элементы в массиве b и добавляет элементы из массива b, которых нет в массиве a. Пример:

var a = arrayToStruct({a: 1, b: 2, c: 3}, {a: false, x: false, y: true});

результат: {a: 1, x: false, y: true}

toArray(string, separator, empty)

Вернёт одномерный массив из строки string. В аргумент separator передаётся строка разделитель, по умолчанию "," (запятая). Например:

var a = toArray("1970-01-01", "-");

результат: ["1970", "01", "01"]

По умолчанию, из результата (массива) будут убраны все пустые элементы, если они нужны, следует передать true в аргументе empty. Если в аргументе string будет передан массив, то он и будет возвращён в качестве результата. В иных случаях, когда аргумент string пуст, не является строкой, числом или массивом, функция вернёт пустой массив.

Дата / время:

isDate(string)

Вернёт метку времени (количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC), если строка string содержит дату в любом формате, иначе false.

displayDate(date, format)

Вернёт дату как строку в заданном формате format. Пример:

var d = displayDate(new Date(0), "d.m.y h:i:s");

результат: "01.01.1970 00:00:00"

Аргумент date, может быть объектом даты или строкой содержащей дату в любом формате, в иных случаях, функция вернёт пустую строку.

getPeriod(start, end, step, format)

Вернёт массив объектов дат (new Date) между датами start и end включительно с заданным шагом в аргументе step. Аргументы start и end, могут содержать дату в любом формате, в виде строки, объекта или целого числа (количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC). Аргумент step может содержать целое число (количество миллисекунд) или строку в формате: <сколько><чего>, например: "1week", "3day", "5hour", "15minute", "30second". <сколько> указывает на количество недель, дней, часов, минут или секунд. Аргумент step по умолчанию равен 86400000 (одни сутки). При использовании аргумента format (например строка: "d.m.y"), в результате будет массив со строками дат в указанном формате. Если один из аргументов start, end пуст или содержит недопустимое значение, функция вернёт пустой массив.

Элементы:

getElement(selector)

Вернёт объект соответствующий строке селектора selector или null если в документе не существует указанного элемента. Например:

var e = getElement(".my-class-name");

Запишет в переменную "e" первый в документе элемент с классом "my-class-name". Если требуется получить объект только по его ID, то знак "#" в селекторе не обязателен. Работать с элементом можно непосредственно через функцию:

getElement(".my-class-name").style.display = "none";

В аргумент selector можно передать объект, в этом случае, функция может использоваться для проверки переменной на предмет наличия в ней существующего в документе элемента.

getElements(selector)

Возвращает набор (DOM-коллекцию) элементов соответствующих строке селектора selector или null если таких элементов не найдено.

getFirstChildren(e, i)

Вернёт набор (DOM-коллекцию) дочерних элементов объекта e первого уровня. Аргумент e может содержать строку с селектором. Если в аргумент i передать порядковый номер элемента в наборе, то будет возвращён только указанный объект (не набор). Вернёт null, если объект e не найден, не содержит дочерних элементов или отсутствует элемент с заданным порядковым номером.

getChildren(e, i)

Вернёт набор (DOM-коллекцию) всех дочерних элементов объекта e, включая вложенные. Аргумент e может содержать строку с селектором. Если в аргумент i передать порядковый номер элемента в наборе, то будет возвращён только указанный объект (не набор). Вернёт null, если объект e не найден, не содержит дочерних элементов или отсутствует элемент с заданным порядковым номером.

findElements(e, selector, i)

Возвращает набор (DOM-коллекцию) элементов, найденных среди всех дочерних элементов объекта e, соответствующих селектору selector. Аргумент e может содержать строку с селектором. Если в аргумент i передать порядковый номер элемента в наборе, то будет возвращён только указанный объект (не набор). Например:

var elements = findElements("myid", ".my-class-name");

"elements" - набор элементов с классом "my-class-name" внутри элемента с ID "myid" или:

var element = findElements("myid", ".my-class-name", 0);

"element" - первый элемент с классом "my-class-name" внутри элемента с ID "myid". Функция вернёт null, если объект e не найден, не содержит элементов соответствующих селектору selector или отсутствует элемент с заданным порядковым номером.

isNodeList(arg)

Выполняет проверку на DOM-коллекцию. Если в качестве аргумента arg передан набор элементов (DOM-коллекция), функция вернёт true, иначе false.

addElement(e, html, where)

Добавляет новый элемент из HTML кода и возвращает созданный в документе объект. В аргументе e необходимо указать объект, относительно которго будет добавлен новый элемент. Аргумент html должен содержать строку с HTML кодом одного DOM узла. Аргумент where может содержать строку с параметром, указывающим где следует разместить новый элемент, принимает четыре значения: "end" - в конец элемента e, "begin" - в начало элемента e, "before" - перед элементом e, "after" - после элемента e. По умолчанию, where равен "end" (добавление в конец элемента). В момент вызова, возвращается объект, с которым можно производить манипуляции непосредственно через функцию. Например:

addElement(getElement("myid"), '<button>Кнопка</button>').onclick = function(event) { /* ... */ };

Добавление кнопки в элемент с ID "myid", вместе с обработчиком её нажатия и т.п.. Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

removeElement(e, fade, func)

Удаляет из документа элемент e. Указав количество миллисекунд в необязательном аргументе fade, элемент будет удалён после плавного исчезновения. Если передать функцию обратного вызова func, то она будет выполнена после удаления элемента. Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

clearElement(e)

Очищает всё содержимое элемента e. Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

getClass(e)

Возвращает массив с именами CSS классов элемента e. Если элемента не существует, аргумент e пуст или содержит недопустимое значение, функция вернёт пустой массив.

hasClass(e, className)

Служит для проверки наличия CSS класса className у элемента e. Вернёт true, если у элемента имеется указанный класс, иначе false.

addClass(e, className)

Добавляет CSS класс className элементу e. Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

removeClass(e, className)

Убирает CSS класс className у элемента e. Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

getCss(e, prop)

Возвращает действующее на момент вызова функции значение CSS свойства prop у элемента e. Значение будет получено из каскадной таблицы стиля (*.css) либо из содержимого тега <style> или из атрибута "style" элемента. Наример:

var display = getCss(getElement("myid"), "display");

результат: "none/block/inline..." и т.д. Если объект не найден, аргумент e пуст или содержит недопустимое значение, функция вернёт пустую строку.

addCss(e, value, plus, sep)

Добавляет строку из аргумента value в атрибут "style" элемента e. Например:

addCss(getElement("myid"), "user-select: none;");

Если указанное свойство уже имеется в атрибуте "style", его значение будет заменено новым. Для того, чтобы убрать свойство из атрибута "style" (сбросить), следует передать его с пустым значением:

addCss(getElement("myid"), "user-select: ;")

Аргумент plus, может содержать массив с именами свойств, значения которых требуется добавить к существующим. В этом случае, в аргумент sep следует передать разделитель. Например, у элемента getElement("myid"), имеется свойство "will-change: transform", которое указанно в каскадной таблице стиля, в теге <style> или в атрибуте "style" элемента. К нему необходимо добавить свойство "will-change: opacity", не заменяя значение "transform". Сделать это можно следующим образом:

addCss(getElement("myid"), "will-change: opacity;", ["will-change"], ", ");

Теперь атрибут "style" будет содержать: "will-change: transform, opacity;". Функция возвращает новое содержимое атрибута "style" в виде объекта, например:

{color: "#000000", padding: "10px", margin_top: "20px", will_change: "transform, opacity"}

Символ "-" в именах свойств, заменяется на "_". Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

getTagName(e)

Возвращает строку с именем тега элемента e в нижнем регистре. Например:

var tag = getTagName(getElement("myid"));

результат: "div"/"table"/"button" и т.д.

Если объект не найден, аргумент e пуст или содержит недопустимое значение, функция вернёт пустую строку.

getAttrs(e)

Возвращает все атрибуты элемента e в объекте с двумя параметрами: string как строку и array в виде объекта. Например:

var attrs = getAttrs(getElement("myid")).string;

результат: ' id="myid" class="my-class-name"' (строка с ведущим пробелом) или:

var attrs = getAttrs(getElement("myid")).array;

результат: {id: "myid", class: "my-class-name"}

Если объект не найден, аргумент e пуст или содержит недопустимое значение, функция вернёт пустую строку в параметре string и пустой массив в array.

getAttr(e, name)

Вернёт значение атрибута name у элемента e. Например:

var id = getAttr(getElement("myid"), "id");

результат: "myid".

Если элемент не найден, один из аргументов пуст или содержит не допустимое значение, функция вернёт пустую строку.

setAttr(e, name, value)

Добавляет элементу e атрибут с именем name и значением value. В случае успеха вернёт true, иначе false. Если аргумент value пуст но не равен нулю(0) и у элемента e имеется атрибут с именем name, то этот атрибут будет удалён.

getIndex(e, selector)

Возвращает целое число - порядковый номер элемента e в наборе (DOM-коллекции) относительно ближайшего родителя. Если указать селектор в необязательном аргументе selector, будет возвращён номер элемента среди элементов соответствующих селектору. Если элемента не существует, аргумент e пуст или содержит недопустимое значение, функция вернёт ноль (0).

getNext(e, selector)

Возвращает следующий элемент после элемента e. Если необходимо получить следующий элемент среди элементов соответствующих определённому селектору, то его следует указать в необязательном аргументе selector. Например, в документе, среди прочих элементов присутствуют элементы с классом ".find", а элемент e - это один из таких элементов, при этом, между ними могут быть другие элементы.

var next = getNext(e, ".find");

В переменной "next" будет следующий элемент, у которого имеется класс ".find", после элемента e.

Если элемента e не существует или после него нет других элементов относительно ближайшего родителя, или не найден соответствующий селектору элемент, функция вернёт null.

getPrev(e, selector)

Возвращает элемент расположенный перед элементом e. Если необходимо получить предыдущий элемент среди элементов соответствующих определённому селектору, то его следует указать в необязательном аргументе selector. Например, в документе, среди прочих элементов присутствуют элементы с классом ".find", а элемент e - это один из таких элементов, при этом, между ними могут быть другие элементы.

var prev = getPrev(e, ".find");

В переменной "prev" будет предыдущий элемент, у которого имеется класс ".find", относительно элемента e.

Если элемента e не существует или перед ним нет других элементов относительно ближайшего родителя, или не найден соответствующий селектору элемент, функция вернёт null.

getParent(e, selector)

Возвращает объект ближайшего родителя элемента e соответствующего строке селектора selector (поиск среди родителей с переходом от ближайшего к корню документа). В аргумент selector, можно передать и объект, в этом случае, функция может служить для проверки на присутствие указанного элемента среди родителей элемента e. Если элемента e не существует или соответствующий родитель не найден, функция вернёт null. При отсутствующем или пустом аргументе selector, функция вернёт объект ближайшего родителя элемента e.

isHidden(e)

Служит для проверки элемента e на видимость. Если объект скрыт ("display: none" или "visibility: hidden"), функция вернёт его в качестве результата. Так же, проверяются и все родительские элементы, если скрыт не сам элемент, а один из его родителей, будет возвращён объект скрытого ближайшего родителя. Если элемент или один из его родителей скрыт по средствам нулевой прозрачности (opacity: 0), функция вернёт 1 (единицу). Если элемента e не существует, функция вернёт true. В иных случаях возвращается false.

showElement(e, fade, func, prm)

Служит для вывода на экран скрытого элемента e ("display: none, visibility: hidden, opacity: 0"). Если у элемента в атрибуте "style" CSS свойство "display" имеет значение "none", а в каскадной таблице стиля или в теге <style> это свойство содержит не "block" (например: "table" или "inline-block"), то элемент будет отображен согласно этому свойству. Появление элемента может быть плавным, если указать время в аргументе fade (кол-во миллисекунд). Если в момент полного появления элемента, необходимо выполнить запуск другой функции, то её следует передать в аргументе func. Аргумент prm может содержать объект с параметром "ease" (prm.ease), указывающий с какой плавностью должен появиться элемент ("linear", "ease", "ease-out", "ease-in", "ease-in-out", "cubic-bezier..."), по умолчаню "linear". Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

В случае с fade, функция вернёт setTimeout, иначе null.

hideElement(e, fade, func, prm)

Скрывает элемент e. Скрытие элемента может быть плавным, если указать время в аргументе fade (кол-во миллисекунд). Если в момент полного скрытия элемента, необходимо выполнить запуск другой функции, то её следует передать в аргументе func. Аргумент prm может содержать объект с параметром "ease" (prm.ease), указывающий с какой плавностью должен исчезнуть элемент ("linear", "ease", "ease-out", "ease-in", "ease-in-out", "cubic-bezier..."), по умолчаню "linear". Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

В случае с fade, функция вернёт setTimeout, иначе null.

slideDown(e, time, func, prm)

Выполняет анимированное появление элемента e скользящим движением, постепенно увеличивая его высоту. Аргумент time задаёт время анимации в миллисекундах, по умолчанию равен 300. Если в момент полного появления элемента, необходимо выполнить запуск другой функции, то её следует передать в аргументе func, она будет выполнена по завершению анимации. Аргумент prm может содержать объект с параметром "ease" (prm.ease), указывающий с какой плавностью будет воспроизводиться анимация ("linear", "ease", "ease-out", "ease-in", "ease-in-out", "cubic-bezier..."), по умолчаню "linear". Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

Функция возвращает setTimeout, который при необходимости можно сбросить.

slideUp(e, time, func, prm)

Выполняет анимированное скрытие элемента e скользящим движением, постепенно уменьшая его высоту. Аргумент time задаёт время анимации в миллисекундах, по умолчанию равен 300. Если в момент полного скрытия элемента, необходимо выполнить запуск другой функции, то её следует передать в аргументе func, она будет выполнена по завершению анимации. Аргумент prm может содержать объект с параметром "ease" (prm.ease), указывающий с какой плавностью будет воспроизводиться анимация ("linear", "ease", "ease-out", "ease-in", "ease-in-out", "cubic-bezier..."), по умолчаню "linear". Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

Функция возвращает setTimeout, который при необходимости можно сбросить.

waitElement(selector, func, params)

Ожидает создание нового элемента в документе, по заданной строке селектора в аргументе selector. В завершении ожидания, вызывается функция func с аргументом e, который будет содержать объект появившегося в документе элемента или null, если истекло время ожидания (таймаут), а элемент так и не был найден. В аргументе params, может содержаться объект с параметрами:

  • params.timeOut - максимальное время ожидания в миллисекундах (по умолчанию 9000);
  • params.find - селектор, по которому необходимо дождаться создания элемента внутри уже существующего элемента, в этом случае аргумент selector должен содержать объект;
  • params.eq - может использоваться вместе с params.find для передачи порядкового номера ожидаемого элемента в наборе.

Например, известно, что в ходе некоторых действий, в документ должен быть добавлен элемент <input name="some-name">, которого в настоящий момент не существует. С помощью данной функции можно обратиться к этому элементу, в момент его появления:

waitElement('input[name="some-name"]', function(e){ /* ... */ });

В аргументе e будет содержаться элемент <input name="some-name">.

clearTextElement(e)

Убирает текстовое содержимое внутри элемента e и во всех его потомках, заменяя текст одним знаком пробела "&#160;". Может применяться в создании полного клона элемента но без содержимого, при этом не меняя его html структуру и высоту в случае однострочного элемента. Перед выполнением, производится проверка на существующий элемент в аргументе e, если его не окажится, функция завершится без ошибок.

getOuterHTML(е)

Возвращает строку с HTML кодом элемента e, включая сам элемент. Если объект не найден, аргумент e пуст или содержит недопустимое значение, функция вернёт пустую строку.

elementObserver(e, func, config)

Запускает функцию func, если в элементе e произошли изменения. Аргумент config может содержать объект с параметрами отслеживания изменений для функции "MutationObserver", по умолчанию равен: {characterData: true, childList: true, subtree: true}.

getScroll(e)

Возвращает объект с параметрами "x" и "y" содержащими позицию прокрутки элемента e или окна браузера в пикселях по соответствующим осям. Например:

var scrollY = getScroll(getElement("myid")).y;

scrollY - положение вертикальной прокрутки элемента с ID "myid" и CSS свойством "overflow(-x, -y): auto/scroll". Если элемента e не существует, аргумент e отсутствует или содержит недопустимое значение, функция вернёт положение прокрутки окна браузера.

elementPagePosition(e)

Возвращает объект с параметрами "x" и "y" содержащими позицию элемента e в пикселях относительно размеров всей страницы по соответствующим осям. Размер всей страницы определяется с учётом областей за пределами видимости (прокрутки окна браузера). Например:

var pageY = elementPagePosition(getElement("myid")).y;

pageY - расстояние от верха документа до элемента с ID "myid". Если элемента e не существует, аргумент e отсутствует или содержит недопустимое значение, функция вернёт объект с нулевыми параметрами {x: 0, y: 0}.

elementPosition(e)

Возвращает объект с размерами элемента e по высоте и ширине, а так-же его позицию относительно окна браузера в пикселах. Параметры результата: "l" - расстояние от левого края окна, "t" - расстояние от верхнего края окна, "w" - ширина, "h" - высота. Например:

var height = elementPosition(getElement("myid")).h;

height - высота элемента с ID "myid". Если элемента e не существует, аргумент e отсутствует или содержит недопустимое значение, функция вернёт объект с нулевыми параметрами {l: 0, t: 0, w: 0, h: 0}.

setID()

Вернёт уникальный набор цифр преобразованный в строку, который можно задать элементу в качестве ID. Функция производит проверку документа, что бы новое значение ID не повторялось.

События:

eventCancel(event)

Отменяет событие event по умолчанию.

elementOn(e, events, func, opt, temp)

Добавляет на элемент e, обработчик события - функцию переданную в аргументе func. Имя события должно содержаться в аргументе events в виде строки. Если требуется установить один обработчик на несколько событий, то их следует перечислить через запятую или передать в одномерном массиве. Например:

elementOn(getElement("myid"), "mousedown, touchstart", function(event) {
   console.log([this, event]);
});

В аргумент opt, можно передать объект с опциями установки обработчка, например: {passive: true} - пассивный прослушиватель события. Все добавленные обработчки событй, записываются в глобальный массив "_eventHandlers", с тем, что бы при необходимости, можно было сбросить с элемента обработчик любого события или все сразу. Перед добавлением нового элемента в "_eventHandlers", функция очищает этот массив от обработчиков на объектах DOM, которые уже отсутствуют. Для того, что бы устанавливаемый обработчик не записывался в "_eventHandlers", например на временном элементе, следует передать аргумент temp (true).

elementOff(e, events, func, opt)

Удаляет с элемента e обработчк события func. Имя события должно содержаться в аргументе events в виде строки. Если событий несколько, то они могут быть перечисленны через запятую или в одномерном массиве. Аргумент opt может содержать опции удаления обработчика событий, например: false/true и т.п.

clickOut(e, func, params)

Запускает функцию обратного вызова в аргументе func по событию "click", если оно произошло вне элемента переданного в аргументе e. В аргумент params можно передать объект со следующими параметрами:

  • params.exclude - массив с объектами находящимися вне элемента e, по клику на которые не должен срабатывать вызов функции func.

Для отмены действия функции, следует вызвать её повторно передав в аргумент e соответствующий элемент, при этом аргумент func должен быть равен false.

onTrigger(e, type, event)

Выполняет событие заданного типа в аргументе type и запускает обработчики этого события, установленные на элементе e. В аргументе event, можно указать некоторые параметры события в виде объекта: event.touches, event.offsetX, event.offsetY. Например:

onTrigger(getElement("myid"), "mouseover");

Запуск обработчика по событию курсора над элементом с ID "myid".

onTouch(e, func, params)

Запускает функцию обратного вызова func, по событиям мыши или сенсорного экрана, которые происходят на элементе e. В функцию func передаётся аргумент arg в виде объекта со следующими параметрами:

  • arg.type - тип события: "mousedown" - нажатие клавиши мыши, "touchstart" - момент прикосновения к экрану, "mousemove" - передвижение курсора с удержанием клавиши, "touchmove" - передвижение точки касания, "mouseup" - отпускание клавиши, "touchend" - потеря контакта с экраном;
  • arg.mouse.x - позиция курсора или точки прикосновения от левого края элемента e в пикселях;
  • arg.mouse.y - позиция курсора или точки прикосновения от верхнего края элемента e в пикселях;
  • arg.to - объект с параметрами направления движения курсора или точки прикосновения;
  • arg.to.right - содержит true при движении вправо, иначе false;
  • arg.to.left - содержит true при движении влево, иначе false;
  • arg.to.down - содержит true при движении вниз, иначе false;
  • arg.to.up - содержит true при движении вверх, иначе false;
  • arg.end - продолжительность действия в миллисекундах, время между событиями "mousedown", "touchstart" и "mouseup", "touchend";
  • arg.swipe - признак свайпа, если произошло касание с быстрым передвижением, параметр будет содержать объект с количеством пикселей на которое переместился курсор или точка прикосновения, от нажатия клавиши мыши или касания экрана до прекращения удерживания клавиши или потери контакта с экраном;
  • arg.swipe.left - свайп влево или 0;
  • arg.swipe.right - свайп вправо или 0;
  • arg.swipe.down - свайп вниз или 0;
  • arg.swipe.up - свайп вверх или 0;

В аргумент params можно передать объект со следующими параметрами:

  • params.maxDuration - максимальное время свайпа в миллисекундах, по умолчанию 300;
  • params.minDuration - минимальное время свайпа в миллисекундах, по умолчанию 60.

removeAllEventsList(e, type)

Удаляет с элемента e все обработчики события type, добавленные функцией elementOn. Аргумент type, должен содержать строку с именем события, например "click". Если событий несколько, их следует перечислить через запятую. При пустом аргументе type, функция удалит обработчики всех стандартных событий.

cursorPosition(event)

Возвращает данные о позиции курсора из события event. Вид возвращаемого объекта: {pageX: 0, pageY: 0, clientX: 0, clientY: 0, scrollTop: 0, scrollLeft: 0}

touchPosition(event)

Возвращает данные о позиции касания сенсорного экрана из события event. Вид возвращаемого объекта: {pageX: 0, pageY: 0, clientX: 0, clientY: 0, screenX: 0, screenY: 0, scrollTop: 0, scrollLeft: 0}

HTML:

decodeHTML(string)

Вернёт строку string, где специальные символы (мнемоники) будут преобразованы в HTML код.

encodeHTML(html)

Вернёт строку html, где HTML код будет преобразован в специальные символы (мнемоники).

stripTags(html)

Вернёт текст из строки html без HTML тегов.

URL:

getObjUrl(url)

Возвращает GET параметры строки url в виде объекта. Например:

var obj = getObjUrl("http://mysite/?category=1&page=3&array[0]=a&array[1]=b");

результат: {category: "1", page: "3", array: ["a", "b"]}

Если аргумент url пуст или не является строкой, функция вернёт пустой массив.

removeURLParameter(url, parameter)

Вернёт строку url без GET параметра parameter. Например:

var newUrl = removeURLParameter("http://mysite/?category=1&page=3", "page");

результат: "http://mysite/?category=1". Если аргумент url пуст, функция будет использовать текущий адрес страницы.

isImageUrl(url, params)

Проверяет, является ли строка url, ссылкой на изображение, если да, вернёт true, иначе false. По умолчанию, функция сверяет следующие расширения файлов на соответствие: "jpg", "jpeg", "png", "webp", "svg", "gif", "bmp". Для того, что бы задать свой перечень расширений, его следует передать как одномерный массив в парамерте "ext" объекта params (params.ext = ["jpg", "jpeg" ...]).

isVideoUrl(url, params)

Проверяет, является ли строка url, ссылкой на видео файл, если да, вернёт true, иначе false. По умолчанию, функция сверяет следующие расширения файлов на соответствие: "mp4", "ogv", "webm". Для того, что бы задать свой перечень расширений, его следует передать как одномерный массив в парамерте "ext" объекта params (params.ext = ["mp4", "ogv" ...]).

isAudioUrl(url, params)

Проверяет, является ли строка url, ссылкой на аудио файл, если да, вернёт true, иначе false. По умолчанию, функция сверяет следующие расширения файлов на соответствие: "mp3", "ogg", "wav", "flac". Для того, что бы задать свой перечень расширений, его следует передать как одномерный массив в парамерте "ext" объекта params (params.ext = ["mp3", "ogg" ...]).

fileNameFromUrl(url)

Вернёт имя файла с расширением из строки url. Например:

var fileName = fileNameFromUrl("http://mysite/files/archive.zip");

результат: "archive.zip"

Если url не содержит на конце файл, пуст или содержит недопустимое значение, функция вернёт пустую строку.

getFileExt(path)

Вернёт расширение файла из строки path в нижнем регистре. Например:

var fileExt = getFileExt("./storage/files/archive.zip");
/* или */
var fileExt = getFileExt("http://mysite/files/archive.zip");

результат: "zip"

Если аргумент path пуст, не содержит на конце имени файла или не является строкой, функция вернёт пустую строку.

signURL(url, amp)

Используется для составления набора GET параметров в строке url. Если url уже содержит знак "?", функция вернёт "&", если нет, возвращается "?". Если аргумент amp не пуст и в url имеется знак "?", то вместо "&", функция вернёт "&amp;".

Запросы:

waitData(e, params)

Блокирует страницу, закрывая её слоем DIV с анимированым элементом (вращающийся значок), указывающий на то, что в данный момент выполняется некая задача и необходимо дождаться её завершения, например получение данных с сервера. Аргумент e может содержать DOM элемент, в который будет добавлен DIV, необязателен, по умолчанию body. В аргумент params можно передать объект со следующими параметрами:

  • params.className - произвольный CSS класс слоя;
  • params.color - цвет вращающегося значка;
  • params.background - цвет фона слоя;
  • params.opacity - прозрачность слоя;
  • params.fade - кол-во миллисекунд для плавного появления/скрытия слоя и размытия фона;
  • params.main - объект являющийся родителем всего содержимого документа, по умолчанию элемент с ID "main";
  • params.blur - число пикселей на которое будет визуально размыто содержимое документа по средствам добавления фильтра blur к элементу в params.main.

Для того, что бы убрать слой, следует вызвать данную функцию с параметром "remove", например: waitData({remove: true}). При удалении, в аргументе params можно использовать параметр fade (кол-во миллисекунд), для удаления слоя с плавным исчезновением.

getData(url, func, method, data, params, error)

Выполняет асинхронный AJAX запрос по адресу указанному в аргументе url. При успешном выполнении запроса, вызывается функция в аргументе func, с аргументом data, в котором будет содержаться ответ на запрос, а так же содержимое аргумента params во втором аргументе. Во время ожидания ответа, если он не был получен в течении 0.6 секунды, вызывается функция waitData(params), а по завершению ожидания waitData({remove: true, fade: params.fade}). Аргумент method (метод) может принимать два строковых значения - "post" и "get", по умолчанию равен "get". Аргумент data используется при подаче запроса методом "post" и должен содержать объект с данными для передачи на сервер, нарпимер: {login: "John", password: "123"}. Пример GET запроса:

getData("http://mysite/?query=list", function(data, prm) { /* ... */ });

В аргумент params можно передать объект со следующими параметрами:

  • params.type - тип ожидаемых от сервера данных, по умолчанию "json";
  • params.timeOut - Максимальное время ожидания ответа от сервера в секундах (таймаут), по умолчанию равен 90 секунд;
  • params.noTimeOut - (true) отменяет таймаут, заставляя функцию ожидать ответ до тех пор, пока он не будет получен;
  • params.header - может содержать строку с заголовком запроса, по умолчанию равен "application/x-www-form-url";
  • params.nowait - не вызывать функцию waitData во время ожидания ответа;
  • params.noerror - не выводить ошибки на экран.

В аргумент params, так же, можно передать перечень параметров для функции waitData.

Аргумент error, может содержать функцию, которая будет вызвана, если в процессе запроса возникли ошибки.

Формы:

formData(e)

Функция выполняет сериализацию данных формы, возвращает объект из имён и значений элементов форм (контролов) внутри элемента e. Контролы, у которых пуст или отсутствует атрибут "name", игнорируются. Аргумент e по умолчанию равен body. Если объекта в аргументе e не существует или внутри него нет контролов, либо передано недопустимое значение, функция вернёт пустой объект.

formEnterSubmit(e, event)

Выполняет отправку данных с формы по нажтию клавиши "Enter". Функция должна быть установлена в качестве обработчика события на элементе формы, например события "input", элемента "<input>". При нажатии клавиши "Enter", выполняется поиск первой кнопки "<button>" внутри формы и производится её нажатие (button.click()). В качестве формы, кроме элемента "<form>", может выступать любой элемент с CSS классом "form", который будет являться ближайшим родителем элемента e. Элемент "<button>" с CSS классом "submit", будет иметь приоритет перед остальными кнопками. Если элементов "<button>" внутри формы нет, то будет выполнен поиск элемента "<input type="submit">". Аргумент event, может быть передан для отмены события по умолчанию.

waitValueInput(inp, func, params)

Выполняет ожидание условного завершения ввода данных с клавиатуры в элементе (поле) inp и по завершению запускает переданную в аргументе func функцию обратного вызова. При каждом нажатии клавиши, обнуляется и вновь запускается таймер ожидания. Ввод данных считается завершенным по истечению установленного времени. В аргумент inp, может быть передан элемент "<input>", "<textarea>" или другой элемент для ввода данных. В аргумент params можно передать объект со следующими параметрами:

  • params.time - время ожидания в миллисекундах на которое будет взводиться таймер, по умолчанию равен 900;
  • params.empty (true) - срабатывать при пустом значении inp (если поле очистили).

Загрузка:

addScripts(scripts, func, params)

Подключает в документ Java Script файлы и ожидает их загрузку. По завершению, вызывается функция переданная в аргументе func. В аргументе scripts, должны быть указанны имена функций и пути к файлам в виде массива, где ключ - это имя функции, а значение - путь. В качестве ключа, может использоваться имя любой функции, которая объявлена в файле. Например: {slider: "./js/slider.js", onDrag: "./js/ui.js"} - в файле "slider.js" имеется функция slider() и в файле "ui.js" функция onDrag(). Функция в аргументе func вызывается с одним аргументом содержащим массив с данными загрузки файлов. Например:

addScripts({slider: "./js/slider.js", onDrag: "./js/ui.js"}, function(a) {
   /* файлы: slider.js и ui.js загружены, можно приступать к их использованию */
   console.log(a);
});

В данном режиме, загрузка и обработка JS файлов не будет блокировать рендеринг страницы.

Если файлы содержат функции, имена которых совпадают с именем файла, то имена этих функций передавать не обязательно, они будут взяты из имени файла, в этом случае массив в аргументе scripts, может иметь более простой вид: ["./js/slider.js", "./js/tables.js"].

В аргумент params можно передать объект со следующими параметрами:

  • params.catalog - если все подключаемые файлы находятся в одном каталоге, то можно указать путь к нему в данном параметре, а в scripts перечислить толко имена файлов;
  • params.timeOut - максимальное время ожидания загрузки файлов в секундах, по умолчанию 9;
  • params.nowait - не использовать функцию waitData при ожидании;
  • params.nocache - (true) добавляет в атрибут "src" GET параметр с меткой времени, заставляя браузер считывать js файлы снова при каждой загрузке документа (может использоваться при отладке).

Функция запустит func по таймауту, если по одному из путей отсутствует файл или не верно указанно имя функции.

addStyles(styles, func, params)

Подключает в документ файлы таблиц CSS стилей и ожидает их загрузку. По завершению, вызывается функция переданная в аргументе func. В аргументе styles, должны быть указанны пути к файлам в виде одномерного массива или строки с перечислением их через запятую. Например: ["./css/slider.css", "./css/tables.css"]. Важно, чтобы в каждом CSS файле находился селектор c ID соответствующий имени файла и свойством "display: none". Например, в файле "slider.css", должна присутствовать строка:

#slider { display: none; }

и в "tables.css" соответственно:

#tables { display: none; }

Если в имени файла имеются символы, которые не являются буквами или цифрами, то в выше указанных строках их следует заменить на знак "_". Например, в CSS файле "slider.min.css", строка должна иметь вид: #slider_min { display: none; }

Если в одном из файлов будет отсутствовать указанная строка или какой то из файлов будет не найден, то функция не сможет установить факт загрузки таблиц стилей и запустит func только по таймауту. Функция в аргументе func вызывается с одним аргументом содержащим массив с данными загрузки файлов. Например:

addStyles(["./css/slider.css", "./css/tables.css"], function(a) {
   /* файлы: slider.css, tables.css загружены, стили применены */
   console.log(a);
});

В данном режиме, загрузка CSS файлов не будет блокировать парсинг HTML-кода страницы.

В аргумент params можно передать объект со следующими параметрами:

  • params.catalog - если все подключаемые файлы находятся в одном каталоге, то можно указать путь к нему в данном параметре, а в styles перечислить толко имена файлов;
  • params.timeOut - максимальное время ожидания загрузки файлов в секундах, по умолчанию 9;
  • params.nowait - не использовать функцию waitData при ожидании;
  • params.nocache - (true) добавляет в атрибут "href" GET параметр с меткой времени, заставляя браузер считывать css файлы снова при каждой загрузке документа (может использоваться при отладке).

loadingImages(e, func, params)

Ожидает загрузку изображений внутри элемента e, по завершению вызывает функцию указанную в аргументе func. При отсутствующем аргументе e, используются все изображения в документе. Функция загружает изображения не только в элементах "<img>", но и в любых других элементах с CSS классом "background-image", где изображение указанно в CSS свойстве "background(-image)".

Во время ожидания, в элемент с изображением добавляется анимированный значок (элемент: span.waiting svg), в момент когда изображение полностью загружено, оно плавно появляется на экране, а значёк исчезает. Если после загрузки, изображение должно иметь определённую прозрачность, то в элемент следует добавить атрибут "data-opacity" со значением прозрачности, в этом случае, плавное появление изображения прекратиться на указанном значении. Помимо атрибута "src", элементы могут иметь атрибут "data-src" или "data-background", значение которых будет установлено в атрибут "src" или в свойство "background" при загрузке изображения по адресу указанному в этих атрибутах. Пример:

loadingImages(getElement("myid"), function(prm) {
   /* загружены все изображения расположенные внутри <div id="myid"> */
   console.log(prm);
});

В аргумент params можно передать объект со следующими параметрами:

  • params.visible (true) - загружать только видимые изображения, элементы за пределами прокрутки игнорируются, по умолчанию false;
  • params.visibleParent - загружать изображения только если видимым является родительский элемент этого изображения, элементы за пределами прокрутки игнорируются. Принимает значения: true и целое число. true - первый ближайший родительский элемент, а целое число, указывает на дальнего родителя, а именно на какое количество родительских элементов нужно поднятся в DOM дереве, что бы получить требуемый элемент (порядок отсчёта: 1 - первый ближайший родитель изображения, 2 - родитель родителя и т.д.). Используется вместе с params.visible, по умолчанию false;
  • params.scrolling (true) - загружать изображения по мере прокрутки, используется вместе с params.visible, по умолчанию false;
  • params.noimage - URL альтернативного изображения, которое будет установлено если при загрузке возникла ошибка (изображение отсутствует или адрес не является ссылкой на изображение);
  • params.delay - время задержки срабатывания функции в миллисекундах;
  • params.fade - время плавного появления изображений в миллисекундах;
  • params.backgroundImagesClassName - имя CSS класса для элементов с изображениями в CSS свойстве "background", вместо класса по умолчанию - "background-image";
  • params.tempClassName - временное имя CSS класса для всех элементов с изображениями, функция будет делать выборку элементов только по указанному в этом параметре классу, после загрузки изображения, данный класс удаляется из атрибута "class". Рекомендуется использовать при большом количестве изображений, а так же в случае если их число динамически увеличивается, например, по мере прокрутки;
  • params.animate - (false) отображать изображения без плавности и не использовать анимированный значок во время ожидания, по умолчанию true;
  • params.addClassNameParent - имя CSS класса, которое должно быть добавлено родительскому элементу изображения после загрузки;
  • params.nowait - (true) не добавлять анимированный значок, по умолчанию false;
  • params.color - цвет анимированного значка, по умолчанию светло-серый;
  • params.anyway - (true) запустить функцию func при отсутствии изображений или если все изображения уже загружены (выполнен повторный вызов), по умолчанию false;
  • params.nocache - (true) добавляет в адрес изображений GET параметр с меткой времени или с содержимым данного параметра (если оно является строкой или числом), заставляя браузер получать их снова при каждой загрузке документа, по умолчанию false.

В аргумент params, так же, можно передать перечень параметров для функции isScrollVisible.

getReady(func)

Запускает функцию обратного вызова func, если полностью загружен HTML и построено DOM-дерево. Может использоваться повторно и в любом количестве js файлов.

documentLoad(styles, scripts, func, params)

Объединяет в себе функции: addStyles, addScripts, loadingImages и getReady. Запускает функцию обратного вызова func, если полностью загружены HTML, CSS и JavaScript файлы. В аргументе styles, должны быть указанны пути к файлам в виде одномерного массива или строки с перечислением их через запятую (используется функция addStyles). В аргументе scripts, должны быть указанны имена функций и пути к файлам в виде массива, где ключ - это имя функции, а значение - путь (используется функция addScripts). CSS файлы загружаются в первую очередь, с тем, что бы в момент запуска скриптов, стили были уже применены, давая возможность получить верные метрики DOM элементов. В функцию func, передаётся аргумент с объектом содержащим параметры загрузки. Например:

documentLoad(["./css/slider.css", "./css/tables.css"], {slider: "./js/slider.js", onDrag: "./js/ui.js"}, function(a) {
   /* DOM готов, все CSS и JS файлы загружены */
   console.log(a);
});

При использовании этой функции, можно устранить ресурсы, блокирующие отображение страницы.

В аргумент params можно передать объект со следующими параметрами:

  • params.images (true) - ожидать загрузку всех изображений в документе (используется функция loadingImages), по умолчанию false.

А так же перечень параметров для функций addStyles, addScripts и loadingImages.

Другое:

isVar(var)

Вернёт true, если переменная var существует (не "undefined"), иначе false.

isEmpty(data, n)

Служит для проверки переменных data с различными типами данных на техническую пустоту. Вернёт true, если переменная пуста. Ноль(0), false, null, NaN, undefined или строка не содержащая ни чего кроме пробелов - считается пустотой. Массив или объект будет считаться пустым, даже если в нём имеются элементы, но все их значения пусты (равны нулю, false, null, являются NaN или не содержат ни чего кроме пробелов). При значении true в аргументе n, ноль (0) будет считаться не пустым значением.

isData(data)

Проверяет, является ли переменная data строкой или числом, если да, вернёт true, иначе false. Может использоваться при выводе информации на экран.

changeVariable(value, callback)

Запускает функцию callback, если переменная value изменилась через метод setValue. Например:

var change = new changeVariable(1, function() { console.log(this.getValue()); });
setTimeout(function(){ change.setValue(0); }, 3000);

browserIsVisible(func)

При переключении вкладки или сворачивании окна браузера, функция вызывает переданную в аргументе func функцию с аргументом a. Если вкладка не является активной или окно свёрнуто, аргумент a будет содержать false, иначе true.

getLanguage(default)

Возвращает строку с двухбуквенным кодом текущего языка браузера. Если язык определить не удалось, функция вернёт значение атрибута "lang" тега "html", если он будет не найден или окажется пуст, возвращается значение аргумента default, который по умолчанию равен "en".

getSize(noscroll)

Возвращает объект с размерами окна браузера в пикселях, где параметр "w" - ширина, "h" - высота, "sw" - ширина с учётом прокрутки, "sh" - высота с учётом прокрутки. При не пустом аргументе noscroll, будут возвращены размеры окна без ширины полосы прокрутки. Например:

var trueWidth = getSize(true).w;

trueWidth - ширина окна браузера без ширины полосы прокрутки.

getMeta(name)

Находит мета тег по значению атрибута name и возврвщает содержимое атрибута "content". Например:

var desc = getMeta("description");

desc - текст с описанием страницы. Если тег с указанным именем не найден, аргумент name пуст или содержит недопустимое значение, функция вернёт пустую строку.

getFileSize(size)

Преобразовывает число байт из аргумента size в строку с размером файла в килобайтах, мегабайтах и гигабайтах для вывода на экран. Например:

var fileSize = getFileSize(1024);

результат: "1 Kb".

objToHtml(obj, params)

Функция рекурсивно обходит объект obj и возвращает его в виде HTML кода со списком (ul, li). По умолчанию, функция составляет список только из значений элементов объекта, что бы вывести имена параметров, следует передать не пустой параметр name в объекте params.

showObject(obj, params)

Использует функцию "objToHtml" для вывода на экран объекта obj в виде HTML списка. Может использоваться для просмотра содержимого объектов при отладке, аналогично функции console.log(obj). Объект в аргументе params, может содержать следующие параметры:

  • params.add (false/true) true - обновлять список не удаляя предыдущий;
  • params.remove (false/true) true - удалять список по кнопке закрыть;
  • params.collapse (false/true) true - выводить вложенные объекты скрытыми, списки будут раскрываться по нажатию;
  • params.dateTime (false/true) true - добавить дату и время под списком;
  • params.duration, params.ease - параметры анимации при показе списка.

oldBrowser()

Вернёт true, если страница открыта в устаревшем браузере, например в IE.

toClipboard(str)

Записывает в буфер обмена строку str. Например:

toClipboard(window.location.href);

Скопировать адрес страницы.

dialog(mess, status, params, fade, func)

Используется для вывода сообщений на экран с произвольным оформлением, например в виде popup элемента. В аргумент mess, в обычном режиме, передаётся текст сообщения, может быть строкой или массивом, который будет отображён в виде списка (ul, li). Появившийся элемент с сообщением, будет иметь CSS класс "dialog". Если запустить функцию с пустым аргументом mess, то с экрана будут убраны все показанные сообщения. Если в аргумент mess передать DOM объект сообщения или любой элемент находящийся внутри него, за исключением кнопки с CSS классом "resize", то данное сообщение будет убрано с экрана. Кнопка с классом "resize", меняет размер элемента сообщения по размеру окна браузера (на весь экран). Аргумент status, может содержать строку, которая будет включена в атрибут class элемента сообщения, с тем, что бы определённые типы сообщений могли иметь различное оформление, например: "warning" - желтый, "error" - красный, "done" - зелёный, "message" - синий, "failure" - оранжевый, "info" - сиренивый и т.д. Объект в аргументе params, может содержать следующие параметры:

  • params.id - произвольный ID элемента сообщения;
  • params.background - признак того, что сообщение должно быть показано на сплошном фоне, закрывающим остальное содержимое документа, должен содержать значение цвета, например: "rgba(0, 0, 0, 0.5)";
  • params.title - строка с заголовком сообщения, params.icon - строка с HTML кодом значка в теле сообщения;
  • params.titleIcon - строка с HTML кодом значка в заголовке сообщения;
  • params.buttons - строка с HTML кодом кнопок внизу сообщения;
  • params.tools - строка с HTML кодом кнопок в заголовке сообщения;
  • params.big - признак того, что элемент с сообщением должен иметь размеры больше обычного (добавляется CSS класс "big");
  • params.className - дополнительный произвольный CSS класс;
  • params.style - строка с CSS стилями сообщения, добавляется в атрибут "style";
  • params.duration - время плавного появления фона и размытия(кол-во миллисекунд), используется вместе с params.background, по умолчанию равен аргументу fade;
  • params.main - объект являющийся родителем всего содержимого документа, по умолчанию элемент с ID "main";
  • params.blur - число пикселей на которое можно визуально размыть содержимое документа по средствам добавления фильтра blur к элементу params.main.

В аргументе fade, можно указать время плавного появления сообщения на экране (кол-во миллисекунд). Если в аргумент func передать функцию, то она будет вызвана в момент показа сообщения или по истечении времени в аргументе fade, после плавного появления. В качастве единственного аргумента, в функцию обратного вызова, будет передан DOM объект сообщения. Может использоваться для установки обработчиков событий на кнопки в сообщении. Функция в аргументе func, так же может быть передана и запущена при удалении сообщения с экрана (закрытии). В этом случае, в аргумент функции обратного вызова, будет передан аргумент params.

windowOpen(url, params)

Открывает popup окно браузера с переданным адресом в аргументе url и возвращает объект с данным окном. В аргумент params можно передать объект со следующими параметрами:

  • params.title - заголовок окна;
  • params.width - ширина окна в пикселях;
  • params.height - высота окна в пикселях;
  • params.toolbar (true/false) - показать/скрыть панель инструментов;
  • params.location (true/false) - показать/скрыть поле URL-адреса (если позволяет браузер);
  • params.directories (true/false) - показать/скрыть директории в url (если позволяет браузер);
  • params.status (true/false) - показать/скрыть строку состояния (если позволяет браузер);
  • params.menubar (true/false) - показать/скрыть меню браузера, params.scrollbars (true/false) - показать/скрыть полосу прокрутки;
  • params.resizable (true/false) - разрешить/запретить менять размеры окна.

windowClose(win)

Закрывает popup окно. В аргумент win, должен быть передан объект окна.

scrollToElement(e, speed, params, parent, func, arg, i)

Производит плавную прокрутку окна браузера или элемента до объекта в аргументе e, аргумент так же может содержать строку с селектором, или число пикселей, на которое требуется прокрутить окно (элемент). В аргументе speed, задаётся время выполнения в миллисекундах, по умолчанию 300. В аргумент params можно передать объект со следующими параметрами:

  • params.ease - плавность анимации при прокрутке, принимает строковые значения - "linear", "circ", "quad", "easeOutSine", "easeInOutSine", "easeInOutQuint", "easeInQuad", "easeOutQuad" по умолчанию "linear";
  • params.to - направление прокрутки, "top" - вертикальное, "left" - горизонтальное, по умолчанию "top";
  • params.offset - число пикселей для отступа, если требуется прокрутить немного выше или ниже элемента, в случае последнего, указывается отрицательное значение.

Если прокрутка должна производится внутри элемента с CSS свойством "overflow(-x, -y): auto", то необходимо передать этот элемент в аргументе parent. Если в аргумент func передать функцию, то она будет вызвана по завершению прокрутки. Аргумент arg передаётся в функцию обратного вызова func. Если значение в arg не является объектом, то оно заменяется на объект, а само значение будет содержаться в параметре arg.argument, затем к объекту arg, добавляются следующие параметры:

  • arg.element - объект до которого выполнялась прокрутка;
  • arg.top - новое положение прокрутки в пикселях по вертикали;
  • arg.left - новое положение прокрутки в пикселях по горизонтали;
  • arg.shift - на сколько пикселей было прокручено окно (элемент).

Функция создаёт элемент массива _scrollToElement[i] с requestAnimationFrame в глобальной видимости, который и возвращает.

isScrollVisible(e, params)

Используется для определения видимости элемента e в области прокрутки окна или родительского элемента с CSS свойством "overflow(-x, -y): auto". Если верхняя или нижняя граница элемента находится в видимой зоне, функция вернёт true, иначе false. Может использоваться в обработчике события "scroll" (в момент прокрутки). В аргумент params можно передать объект со следующими параметрами:

  • params.parent - родительский объект с CSS свойством "overflow(-x, -y): auto", следует указать только если элемент e находится внутри отдельно прокручиваемого блока, по умолчанию окно браузера;
  • params.offset - число пикселей, на которое должен показаться элемент e, что бы функция считала его видимым (вернула true), по умолчанию 1;
  • params.offset.y - число пикселей, на которое должен показаться элемент при вертикальной прокрутке, по умолчанию 1;
  • params.offset.x - число пикселей, на которое должен показаться элемент при горизонтальной прокрутке, по умолчанию 1;
  • params.half - (true) элемент будет считаться видимым, если показался на половину от своей высоты или ширины;
  • params.full - (true) элемент будет считаться видимым, если показался полностью. Если размеры элемента превышают размеры окна или родительского элемента, он будет считаться видимым, если занял всю высоту или ширину окна/родительского элемента.
В вашем браузере отключен Java Script. Функционал страницы недоступен.