Мелкие, но полезные функции. Часть 2
Продолжаю данную тему, как выяснилось – многим интересную :)
1) Генерация случайного числа в определенном диапазоне:
function randomIntervalNumber(m,n) {
return Math.floor( Math.random() * (n - m + 1) ) + m;
}
return Math.floor( Math.random() * (n - m + 1) ) + m;
}
2) Определение координат мыши:
function mousePageXY(e) {
var x, y;
if (!e) e = window.event;
if (e.pageX && e.pageY) {
x = e.pageX;
y = e.pageY;
} else if (e.clientX || e.clientY) {
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
return {'x':x,'y':y};
}
var x, y;
if (!e) e = window.event;
if (e.pageX && e.pageY) {
x = e.pageX;
y = e.pageY;
} else if (e.clientX || e.clientY) {
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
return {'x':x,'y':y};
}
3) Запрет выделения текста на сайте:
Полезная фича, но увы легко обойти – выключив JavaScript
function disableSelection(target){
if (typeof target.onselectstart!="undefined") //IE route
target.onselectstart=function(){return false}
else if (target.style && typeof target.style.MozUserSelect!="undefined") //Firefox route
target.style.MozUserSelect="none"
else //All other route (ie: Opera)
target.onmousedown=function(){return false}
if(target.style && target.style.cursor) target.style.cursor = "default"
}
disableSelection(document.body);
if (typeof target.onselectstart!="undefined") //IE route
target.onselectstart=function(){return false}
else if (target.style && typeof target.style.MozUserSelect!="undefined") //Firefox route
target.style.MozUserSelect="none"
else //All other route (ie: Opera)
target.onmousedown=function(){return false}
if(target.style && target.style.cursor) target.style.cursor = "default"
}
disableSelection(document.body);
4) Выборка родителя по классу:
function getElementBefore(_el,_class) {
var _parent = _el;
do {
_parent = _parent.parentNode;
}
while(_parent && _parent.tagName != "HTML" && _parent.className.indexOf(_class) == -1)
return _parent;
}
var _parent = _el;
do {
_parent = _parent.parentNode;
}
while(_parent && _parent.tagName != "HTML" && _parent.className.indexOf(_class) == -1)
return _parent;
}
5) Создание нового элемента:
function newElement(elementName,text,attributes) {
if(typeof elementName != "string" || typeof attributes != "object") return;
var element = document.createElement(elementName);
element.appendChild(document.createTextNode(text));
for( var i in attributes ) {
element[i] = attributes[i];
}
return element;
}
if(typeof elementName != "string" || typeof attributes != "object") return;
var element = document.createElement(elementName);
element.appendChild(document.createTextNode(text));
for( var i in attributes ) {
element[i] = attributes[i];
}
return element;
}
1 Коментарий to Мелкие, но полезные функции. Часть 2
Оставить сообщение
Метки
Рубрики
- Browsers (2)
- CSS (2)
- HTML (6)
- JavaScript (30)
- jQuery (17)
- JS Plugins (21)
- Mootools (3)
- off-topic (2)
- Prototype (1)
- WordPress (1)
- WP Plugins (1)
- Верстка (2)
- Методики (5)
- Полезные ссылки (6)
Чуть изменил вот эту функцию:
var _parent = _el;
do {
_parent = _parent.parentNode;
}
while(_parent && _parent.tagName.toUpperCase() != "HTML" && !( new RegExp( '(^|\\s)' + _class + '(\\s|$)' ) ).test( _parent.className ) )
return _parent;
}