JavaScript & jQuery
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Чтобы не создавать отдельные темы с проблемой в JavaScript, решил создать тему с вопросами по jS и jQ. Задаем вопросы… Ссылки для обучения JS: 1. Центральный Javascript-ресурс 2. Учебники JavaScript 3. Уроки JavaScript 4. Справочник JavaScript 5. JavaScript tutorials 6. Плагины для jQuery 7. Учим JavaScript 8. Интересные решения на JS Конечно, если я какие-нибудь ссылки пропустил, оповестите меня, и я добавлю эти ссылки.
UPD Стандарт экма на русском: http://javascript.ru/ecma
Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
нужно. Очень важная тема! Filmzona — онлайн фильмы .
MegaFill
Группа: Проверенные
Пользователь №: 3260
Сообщений: 79
Получено оценок: 8
Не люблю я коддить прост Мой моушенhttp://vimeo.com/megafill Креатив http://dailycreative.ru/ Веб разработка и тп http://devshack.ru/
Raiderr
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
Quote (MegaFill )
Не люблю я коддить прост
харошая отмазка, щас еще модно говорить "это мой первый раз" Aleko , спасибо!
Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI Сообщение отредактировал Raiderr - Вторник, 26.10.2010, 00:32
MegaFill
Группа: Проверенные
Пользователь №: 3260
Сообщений: 79
Получено оценок: 8
Quote (Raiderr )
харошая отмазка, щас еще модно говорить "это мой первый раз"
Я по крайней мере хоть написал код, который работал. Мой моушенhttp://vimeo.com/megafill Креатив http://dailycreative.ru/ Веб разработка и тп http://devshack.ru/
Raiderr
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
Quote (MegaFill )
Я по крайней мере хоть написал код, который работал.
я же написал "СПАСИБО!", и это пиши не мне, а "пятикопеешнику" (не Алеку)Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI Сообщение отредактировал Raiderr - Вторник, 26.10.2010, 17:55
MegaFill
Группа: Проверенные
Пользователь №: 3260
Сообщений: 79
Получено оценок: 8
Мой моушенhttp://vimeo.com/megafill Креатив http://dailycreative.ru/ Веб разработка и тп http://devshack.ru/
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
мой ник не склоняется Бесплатные обои.
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko , дело в другом - он тебя пятикопеешником обозвал!aka Latro
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
DSC , не меняБесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Я чтоль? оО ---------- Забыл…
Очень важная тема! Filmzona — онлайн фильмы .
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko , может и не тебя, но написав что не тебя имел ввиду, он подсознательно обозвал тебя таковым...aka Latro
Raiderr
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
Quote (UnderShot )
Я чтоль? оО
нет, ты что?!.Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI Сообщение отредактировал Raiderr - Среда, 27.10.2010, 00:56
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
$WARNING$Закончили. Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Пишу highlighter, но плохо получается подсветить regexp’ы:Code
/([\,\(\[\+\-=\:\?\{])(\s*)(\/(?=[^\*])[^\n\r<>]+?\/[img]{0,3})/gi
Кто знает, как правильно написать регулярку для самих регэкспов? Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Т.е подсветка идет до первого «\/». UPD: Очень важная тема! Filmzona — онлайн фильмы .
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot aka Latro
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Quote (UnderShot )
Пишу highlighter, но плохо получается подсветить regexp’ы:
Красавец. Я с этой проблемой сам долго боролся. Решение:
1. с помощью регулярки В САМОМ НАЧАЛЕ ОБРАБОТКИ выдираем регекспы и заменяем их на спецтеги:
Code
/(\,|\+|\=|\||&|>|<|\:|\?|\(|\[|\{)(\s*)(\/(?=[^\*])(\\\/|\\Q.*?\/.*?\\E|[^\/<>\n\r])+\/|\/\/)([gim]{0,3})/gi
2. обрабатываем код 3. заменяем спецтеги обратно на регекспы
Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
DSC , не прет. Aleko , вот у меня идет такая замена:… в начале замен:Code
.replace(/([\,\(\[\+\-=\:\?\{])(\s*)(\/(?=[^\*])[^\n\r<>]+?\/[img]{0,3})/gi,function(a,b,c,d){ r.reg.push(d) return b+"~~~REGEXP"+r.reg.length+"~~~" })
…Code
for(var i=0;i<r.reg.length;i++){ a=a.replace("~~~REGEXP"+(i+1)+"~~~",t.addColor(["regexp",t.removeStyle(r.reg[i])])) };
Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , сделал по твоему регу, все отлично) Спасибо большое! Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
<script> /* проверка * © 2010, UnderShot * * * */ </script>
Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
<script>a = //gi //коммент b = ['///////', // коммент /reg/, {c:new RegExp('\/\/[\\\\]\/\/')}]</script>
Очень важная тема! Filmzona — онлайн фильмы .
Just_
Группа: Проверенные
Пользователь №: 1418
Сообщений: 19
Получено оценок: 4
Привет всем. Мне понадобилось повернуть картинку на опрделенное кол-во градусов. Как это можно реализовать?
Just_
Группа: Проверенные
Пользователь №: 1418
Сообщений: 19
Получено оценок: 4
UnderShot , Я вот нашел плагин jQueryRotate. Вроде то что нужно. ----- А почему он не сжимается здесь ? Как его вес можно уменьшить?
CoolSenpai
говорун
Группа: Проверенные
Пользователь №: 2213
Сообщений: 116
Получено оценок: 24
Нашел интересный плагин,хотелось бы его реализовать на uCoz. тык
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
CoolSenpai , пфф, скачай скрипт, и все.Очень важная тема! Filmzona — онлайн фильмы .
Just_
Группа: Проверенные
Пользователь №: 1418
Сообщений: 19
Получено оценок: 4
UnderShot , Спасибо. Сталкнулся еще с одной проблемой. Нужно сделать подписи картинок при наведении мышкой.
Решение проблемы нашел в плагине Captify, но столкнулся с проблемой: Как выровнять картинки в одну строку. На оф. сайте сказано, что это делается так:
Code
.caption-wrapper { float: left; }
Но получается вот что: Как сделать нормально? Или возможно есть более легкое решение чем Captify?
тест сайт
Сообщение отредактировал Just_ - Суббота, 20.11.2010, 19:19
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
чёто я вообще туплю, как сделать чтобы число 1000000 , стало таким: 1 000 000 число может быть любым, не обязательно такое!
aka Latro
cool09
молчун
Группа: Проверенные
Пользователь №: 3145
Сообщений: 33
И снова наткнулся на одну проблемку... Хотел установить на сайт хинт примерно с таким стилем и джаваскриптом Code
/* hint menu */ .hint { background-color: #252525; line-height: 10px; color: #ffffff; font-family: Verdana; font-size: 10px; width: auto; border: 2px solid #6cc30e; margin: 1px; padding: 7px; position: absolute; visibility: hidden;} /* ---------------- */
Code
//Hint Start // CLASS : MW_System_Load // Init function MW_System_Load(){ this.wib = screen.width; this.heb = screen.height; this.documes = (document.getElementById || document.createElement || document.getElementsByTagName) ? true : false; this.objects = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null; this.types = 'load'; } MW_System_Load.prototype.addsevent = function(func){ if(this.objects.addEventListener){ this.objects.addEventListener(this.types,func,false); return true; } else if (this.objects.attachEvent){ this.objects.attachEvent("on" + this.types,func); } else { return false; } } MW_System_Load.prototype.browser = function(){ this.ver = navigator.appVersion; this.agent = navigator.userAgent.toLowerCase(); this.dom = document.getElementById ? 1:0; this.all = document.all ? 1:0; this.ie5 = (this.ver.indexOf("MSIE 5")>-1 && this.dom) ? 1:0; this.ie6 = (this.ver.indexOf("MSIE 6")>-1 && this.dom) ? 1:0; this.ie4 = (document.all && !this.dom) ? 1:0; this.ie = this.ie4 || this.ie5 || this.ie6; this.opera = this.agent.indexOf("opera")>-1; this.gecko = (this.agent.indexOf("gecko")!=-1) ? 1:0; this.bw = (this.ie || this.opera || this.gecko); return this; } MW_System_Load.prototype.findobj = function(obj){ this.parent = window.document; if(this.parent[obj]){ return this.parent[obj]; } if(this.parent.all && this.parent.all[obj]){ return this.parent.all[obj]; } if(this.parent.layers && this.parent.layers[obj]){ return this.parent.layers[obj]; } if(this.parent.getElementById && this.parent.getElementById(obj)){ return this.parent.getElementById(obj); } return null; } var MW = new MW_System_Load(); function MW_System_Hint(){} MW_System_Hint.prototype.show = function(obj,str){ var hint = MW.findobj('hint'); if(!obj){ return; } if(!MW.documes){ return; } if(!hint){ return; } hint.className = 'hint'; hint.style.left = 15; hint.style.top = 50; obj.onmouseout = function(advance){ hint.style.width = ''; hint.style.visibility = 'hidden'; if(hint.firstChild) hint.removeChild(hint.firstChild); hint.appendChild(document.createTextNode(str)); }; obj.onmousemove = function(advance){ //str = str.replace(/</g,"<"); //str = str.replace(/>/g,">"); hint.style.width = ''; hint.innerHTML = str; vc = document.getElementsByTagName((document.compatMode && document.compatMode=="CSS1Compat") ? "HTML":"BODY")[0]; x = window.event ? event.clientX + vc.scrollLeft : advance.pageX; y = window.event ? event.clientY + vc.scrollTop : advance.pageY; vcwidth = vc.clientWidth ? vc.clientWidth + vc.scrollLeft : window.innerWidth + window.pageXOffset; vcheight = vc.innerHeight ? window.innerHeight + window.pageYOffset : vc.clientHeight + vc.scrollTop; if(hint.offsetWidth>500){ hint.style.width = '200'; } if((x + hint.offsetWidth + 15) > vcwidth){ hint.style.left = x - hint.offsetWidth - 4; } else { hint.style.left = x + 15; } if((y + hint.offsetHeight + 19) > vcheight){ hint.style.top = y - hint.offsetHeight; } else { hint.style.top = y + 25; } //if(typeof(hint.style.MozOpacity)!="undefined"){ hint.style.opacity = '.91'; hint.style.filter = "alpha(opacity:91)"; //} hint.style.visibility = 'visible'; }; } MW_System_Hint.prototype.initialize = function(){ var hint = document.createElement("DIV"); hint.setAttribute('id','hint'); document.getElementsByTagName('body')[0].appendChild(hint); hint.style.visibility = 'hidden'; var hintmarker = ['a','img','img','input','span','div','textarea']; var textmarker = ['title','alt','title','title','title','title','title']; var lenmarker = hintmarker.length; for(var i=0; i<lenmarker; i++) { atr = document.getElementsByTagName(hintmarker[i]); for(var j=0; j<atr.length; j++) if(viewhint=atr[j].getAttribute(textmarker[i])){ atr[j].removeAttribute(textmarker[i]); HINT.show(atr[j],viewhint); } } } var HINT = new MW_System_Hint(); if(MW.objects){ MW.addsevent(HINT.initialize); } //Hint End
и тут возникла сама проблема - в обоих браузерах - опера и мозила - пункты меню после наведения на них курсора становятся в положение hover и так и остаются( см. скрин
Вообщем кто, что знает по данному вопросу
Вот код меню, на всякий случай
Code
<td style="border: 1px solid rgb(255, 255, 255);"><table align="center" width="998"><tbody><tr><td bgcolor="#7878ae" valign="top" width="198"><table width="100%"><tbody><tr><td class="copy"> <div title="Главная" class="menu1" onmouseover="this.className='menu2';" onmouseout="this.className='menu1';" onclick="location.href='$HOME_PAGE_LINK$'; "><div class="otst">Главная</div></div>
Code
.menu1 { background : url(/design_files/menu0000.gif) no-repeat; width : 187px; height : 22px; font : 11px tahoma; font-weight : bold; color : #525151; margin-top : 2px; cursor : pointer; } .menu2 { background : url(/design_files/menu2000.gif) no-repeat; width : 187px; height : 22px; font : 11px tahoma; color : #525151; font-weight : bold; margin-top : 2px; cursor : pointer; }
я пережил запуск большого адронного коллайдера(= Сообщение отредактировал cool09 - Воскресенье, 05.12.2010, 15:24
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
cool09 , ховер в меню реализован скриптом. Тултипы - гавно и переписывают стандартные события - соответственно ховер отваливается. Юзай мои тултипы. Код:
Code
(function(rightIndent,topIndent,growTop,opacity,time){ $('*').bind('mouseover',function(_){ (function(t,o,h,w,e,m,d){ if(o.title){ o .t=o.title; o.title=''; o.alt=''; document.body.appendChild( e=document.createElement('div'), e.innerHTML='<span></span><div>'+o.t+'</div>', e.style.cssText='filter:alpha(opacity=0);opacity:0;top:-9999px;left:-9999px;', e.className='tip', e); if(growTop)e.style.marginTop=-e.offsetHeight+'px'; m=function(t){ t=t||event; e.style.top=(document.documentElement.scrollTop||document.body.scrollTop)+t.clientY-topIndent+'px'; e.style.left=(document.documentElement.scrollLeft||document.body.scrollLeft)+t.clientX+rightIndent+'px'; }; d=function(){ $(o).unbind('mouseout',d); o.title=o.t $(e).animate({opacity:0},time,function(){ document.body.removeChild(e); $(document).bind('mousemove',m); }); }; $(o).bind('mouseout',d); $(document).bind('mousemove',m); $(e).animate({opacity:opacity},time); } })(_||event,_.target||_.srcElement) }); })(15,8,false,1,200);
Стили:
Code
/* tip */ .tip{position:absolute;} .tip div{background:#555046;padding:3px 6px 5px 6px;color:#ccc;margin-left:4px;font-weight:700;} .tip span {} /* -- -- */
Бесплатные обои.
cool09
молчун
Группа: Проверенные
Пользователь №: 3145
Сообщений: 33
Aleko , о, спасибо я пережил запуск большого адронного коллайдера(=
Anne_nox
молчун
Группа: Пользователи
Пользователь №: 3332
Сообщений: 1
Добрый вечер. Хотелось бы получить пару ответов на пару вопросов, была бы очень благодарна! В HTML и CSS разбираюсь достаточно хорошо, с юкозом возобновила работу недавно, покинула его незадолго до обновления, а вот с JS совсем не дружу, надеюсь на понятное объяснение. Так же мало работала в HTML'e с формами и их обработкой т.к. просто не было необходимости :)
У меня есть несколько однотипных задач которые мне бы хотелось у себя реализовать на форуме. 1. Очень нужно, что бы в одном из разделов форума темы создавались по другому шаблону нежели обычные темы в других разделах. Т.е. что бы была другая форма создания темы. Так же в отдельном разделе хотелось бы иметь иную форуму добавления ответа . Как это можно сделать? И еще один вопрос сюда же, не бейте если я не права, но ведь у юкоза для уже существующих граф формы есть условные операторы? Если я добавлю другие графы в форму и у них не будет этих операторов, как можно потом впихнуть эти обработанные куски в нужное место? Возможно это действительно смешно, но...
2. Фактически нужен второй набор смайлов. На самом деле там будут ленточки, но думаю это не важно. Мне нужно что бы они показывались в аякс окне и при этом от смайлов были отдельны, но с тем же принципом - для вставки в сообщение. Хочется что бы окно открывалось по клику на что ни будь в панели ББ-кодов.
Большое спасибо за такой образцовый сайт, замечательные работы и другие полезности!)
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
небольшая функция, которая расширяет возможности document.createElement Code
<script type=text/javascript> function createElement(ob,pa,cs){ var ob=document.createElement(ob); if(!!pa||1&&!!cs||1){ if(!!pa)for(var i in pa)if('style'!=i)ob[i]=pa[i]; if(!!cs)for(var j in cs)if('cssText'!=j)ob.style[j]=cs[j] } return ob } </script>
использовать так:Code
<script type=text/javascript> createElement(tag[,properties][,css]); </script>
пример:Code
<script type=text/javascript> createElement('div',{ innerHTML:'mytext', className:'myclass' },{ background:'blue', color:'red' }); </script>
aka Latro
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
решил переписать easy , вот составил регексп для единичной выборки:Code
/^(\w+)?(?:[.#]([\w-]+)|\[([\w-]+)(.?=)['"]?(.*?)["']?\]|:([\w-]+)(?:\((.*?)\))?)?/
проверьте его, всё ли нормально пашет(единичная это без иерархии) п.с.:кстати баги в прошлых версиях были в поиске только из-за неправильного регекспа... ахереть...
aka Latro Сообщение отредактировал DSC - Среда, 22.12.2010, 16:31
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
DSC , я в этом неплохо разбираюсь и тем не менее по такой длинной регулярке не просто сразу определить, что под неё должно подходить. Ты бы хоть примеры привел.Бесплатные обои.
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko , да там всё нормально, я уже сделал псевдоклассы и атрибуты, кстати выборку ускорил и уменьшил хорошо! регулярку исправил немного:Code
/* --тэг-- айди и класс --------атрибуты-------- ---псевдо-классы--- /^([\w*]+)?([.#]([\w-]+)|\[([\w-]+)((.?)=(.*?))?\]|:([\w-]+)(?:\((.*?)\))?)?/ */
проверь просто match'ем.aka Latro
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
как сделать, чтобы если псевдо запихнуто в псевдо, то скопки вложенного псевдо пропускались, нужно сделать это в регекспе aka Latro
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
вот строка: :pseudo(:pseudo2(text:ggg(ddd):nth(2n+2)):not(div))[attr=bar]:nnn(=)) не получается составить нормальный регексп для определения первого псевдо-класса и его содержимого как вообще это сделать, я уже всю голову себе сломал из-за этой херни... aka Latro
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
":pseudo(:pseudo2(text:ggg(ddd):nth(2n+2)):not(div))[attr=bar]:nnn(=))".match(/(\:\w+\(.+\))/g)
?Очень важная тема! Filmzona — онлайн фильмы .
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot , нет, там между внешними псевдо-классами находится атрибут!aka Latro
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
/(\:[\[\]\w]+\(.+\))/g
?Очень важная тема! Filmzona — онлайн фильмы .
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot , ты вообще читал то, что мне нужно? aka Latro
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
DSC , да, тебя тяжело понять.Очень важная тема! Filmzona — онлайн фильмы .
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot : :pseudo(:pseudo2(text:ggg(ddd):nth(2n+2)):not(div) ) [attr=bar]:nnn(=)) мне нужно получить то, что выделино жирным, а важнее всего то, что красным!aka Latro
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
var str=":pseudo(:pseudo2(text:ggg(ddd):nth(2n+2)):not(div))[attr=bar]:nnn(=))",m=[]; str.replace(/(\:\w+\(([^\[\]]+)\))/g,function(a,b,c){ m.push(c) }); alert(m.join("\n"))
Очень важная тема! Filmzona — онлайн фильмы .
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
UnderShot , єтот вариант можно додумать, но всё-равно не то, мне нужно регуляркой сделать, и я уже вроде додумался как буду делать! Но если будут вариант, напишите, может ваши варианты будут лучше!aka Latro
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
DSC , почему не подходит?Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
DSC , почему просто не использовать привязку к началу строки? (слишком просто, явно я чего то не понял..)Бесплатные обои.
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
Aleko , вот . ошибка тут не пропадает!aka Latro