-
Posts
56 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Mixail.09
-
Еще вопрос по теме, помогите далее разобраться: http://codepen.io/anon/pen/zqvJMM function makeBuffer() { var text = ''; function buffer(piece) { if (arguments.length == 0) { // вызов без аргументов return text; } text += piece; }; buffer.clear = function() { text = ""; } return buffer; }; var buffer = makeBuffer(); buffer("Тест"); buffer(" тебя не съест "); alert( buffer() ); // Тест тебя не съест buffer.clear(); alert( buffer() ); // "" Вот это buffer("Тест"); вызывают функцию оболочку (makeBuffer) и передает вложенной в нее функции какое то значение т.к. var buffer = makeBuffer() , Затем buffer(" тебя не съест "); делает тоже самое еще раз. Тут как я понимаю buffer - это не имя вложенной ф-ции, а имя переменной. Отсюда вопрос - если бы было две вложенные ф-ции то в какую из них бы тогда передался этот аргумент, ведь не указано же ни где имя вложенной ф-ции, вот так например было бы все четко и ясно (по крайней мере для новичков как я) buffer.buffer(arg), ну или так makeBuffer.buffer(arg) ? alert( buffer() ) - с этим вроде все ясно. buffer.clear() - вот тут пошла путаница. Здесь buffer - это как я понял опять таки имя переменной (var buffer = makeBuffer()). И опять вот такая запись была бы понятной buffer.buffer.clear() или makeBuffer.bufer.clear(). Опять же если есть две вложенный ф-ции и у каждой есть метод clear() то при такой записи buffer.clear() получается оба сработают?
-
Ребята, спасибо! Кажется начинаю понимать. То есть получается по сути вот это выражение function filter (array, filt) { var newArr = []; for (i=0; i<array.length; i++){ var x = array; if (filt(x)){ newArr.push(x) } } return newArr;};при выполнении будет выглядеть так:function filter (array, filt) { var newArr = []; for (i=0; i<array.length; i++){ var x = array; if (function (x){ if (a<=x && b>=x){ return true; } return false;}){ newArr.push(x) } } return newArr;}; Ну соответственно вместо синей ф-ции вернется true / false
-
Спасибо за ответы. Сейчас снова пытался разобраться, и вот в чем главное непонимание. Пример: function inBetween( a, b ) { return function (x){ if (a<=x && b>=x){ return true; } return false; }}; function filter (array, filt) { var newArr = []; for (i=0; i<array.length; i++){ var x = array; if (filt(x)){ newArr.push(x) } } return newArr;}; var arr = [1, 2, 3, 4, 5, 6, 7]; alert(filter(arr,inBetween(3, 6))); Вот так это работает: http://codepen.io/anon/pen/WwvqPw Вот в чем самый главный вопрос (ни как в голове не сформулируется понимание этого):мы по идее передаем функции inBetween два аргумента, но filt(x) здесь то один аргумент? И я бы еще понял еслиб там просто круглые скобки были, типа просто выполнить функцию с аргументами заданными в дальнейшем, но откуда X не ясно?
-
Здравствуйте. Помогите разобраться вот с такой проблемой. Начал учить JS на сайте learn.javascript.ru и все было нормально (даже хорошо), осваивал материал, решал задачки после тем. После пройденной темы задачи решались довольно легко (ну было конечно пару трудных моментов) и тут "замыкания"!!! (в голове бл...ин замыкания от них начались). И начинался какой то АД АДОВЫЙ. Читаю материал, все норм, все понятно, смотрю задачи и .... просто ступор, смотрю решение и даже видя решение ни чего не могу понять! И так уже неделю. Сразу возник закономерный вопрос, может я просто неисправимо ТУП!!! Просто какое то отчаяние. Что вы думаете про данный курс? Может что полегче, так сказать для средних умов посоветуете для начала? Ниже пример задачи. Следующий код создает массив функций-стрелков shooters. По замыслу, каждый стрелок должен выводить свой номер: function makeArmy() { var shooters = []; for (var i = 0; i < 10; i++) { var shooter = function() { // функция-стрелок alert( i ); // выводит свой номер }; shooters.push(shooter); } return shooters; } var army = makeArmy(); army[0](); // стрелок выводит 10, а должен 0 army[5](); // стрелок выводит 10... // .. все стрелки выводят 10 вместо 0,1,2...9 Почему все стрелки́ выводят одно и то же? Поправьте код, чтобы стрелки работали как задумано. Предложите несколько вариантов исправления.
-
Здравствуйте. Вот пример из учебника: function makeBuffer() { var text = ''; return function(piece) { if (arguments.length == 0) { // вызов без аргументов return text; } text += piece; }; }; var buffer = makeBuffer(); // добавить значения к буферу buffer('Замыкания'); buffer(' Использовать'); buffer(' Нужно!'); alert( buffer() ); // 'Замыкания Использовать Нужно!' Объясните пожалуйста два момента: 1 - зачем функцию makeBuffer() присваивать переменной buffer? 2 - вот этим вызовом buffer('Замыкания') (и всеми такими же) получается что передаем аргумент в функцию оболочку, а использует его внутренняя функция function(piece). Вот такая запись для меня была бы понятна buffer()("Замыкания") то есть аргумент передали во вложенную функцию, где он и прописан. А так получается аргумент передаем внешней функции, а прописан он во внутренней как то непонятно это
-
Спасибо. Оказывается внутренние ф-ции тоже нужно отдельно вызывать, многое прояснилось)
-
Ребят, помогите пожалуйста. Начал учить потихоньку js на одном сайте есть вот такой пример: var a = 1; function getFunc() { var a = 2; var func = new Function('', 'alert(a)'); return func; } getFunc()(); Так вот не могу понять вот этот момент getFunc()(); Зачем две пары скобок? Что значит эта запись.
-
Спасибо, пока писал пример разобрался с z-indexom))) по крайней мере с его частью не касающейся opacity Абсолютно согласен с вами в этом вопросе (может есть какой способ? кто знает?) в 1-ом примере дочерний ниже родителя, но как уже говорилось тот родитель не формирует свой контент наложения. как только задаем ему z-index отличный от auto (даже 0), формируется новый контент наложения и новый порядок слоев, в данном случае ФОН РОДИТЕЛЯ => ФОН ДОЧЕРНЕГО => ТЕКСТ РОДИТЕЛЯ http://codepen.io/anon/pen/bEzNMY
-
Вы в итоге разобрались с контекстами наложения? Просто вроде все понятно, но все равно какой то сумбур в голове. Надеюсь пройдет со временем и опытом. За статью спасибо - полезная, наверное одна из лучших на русском языке
-
Ну вот потому что этот stacking context сместился с родителя (в данном случае html) на этот стол. Теперь позиционирование по z-оси будет начинаться от него. Спасибо! Буду учить матчасть
-
Логика в том, что есть такое понятие, как контекст наложения (stacking context). Можно сравнить со столом и предметами на нем. Стол - это ваш родитель. Предметы - псевдоэлементы. На какой бы этаж вы не подняли стол (z-index: 2 в вашем случае), предметы все равно будут сверху, потому что стол для них - это база. Супер! Отлично объяснили, спасибо! А для отрицательного з-индекса тогда получается другие правила действуют? Возьмем ваш пример и зададим предмету на столе отрицательный з-индекс, он предсказуемо переместится под стол, но стоит к столу применить з-индекс (положительный, да и вообще любой) предмет снова оказывается на столе.
-
:after и :before — это части контента блока. Контент ведь у вас визуально поверх блока расположен? Вот и с псевдоэлементами (жёлтыми квадратами) в вашем случае то же самое. Ну ок, пусть так. Так весь прикол то в том что 1) если вообще нет z-index то псевдоэлемент оказывается сверху (это понятно) 2) если установлю псевдоэлементу (желтым квадратам) z-index 1, а основному блоку (в данном случае это серые квадраты) z-nidex 2 (да хоть 999) то он все равно будет снизу, хотя его зиндекс больше (и где тут логика?! не спорю что она наверняка есть просто ее нужно понять) 3) и совсем уж то что мозг взрывает (по крайней мере мне) если псевдоэлементу (желтым квадратам) z-index ставлю -1, а основной блок (серые квадраты) вообще оставляю без з-индекса, каким то чудом псевдоэдемент оказывается внизу!!! Кто нибудь может объяснить данный эффект? Реально какая то неразбериха и я так понял не только у меня одного
-
Здравствуйте. Разъясните пожалуйста свойства z-index. Как то не логично он себя ведет в комплекте с :before и :after http://codepen.io/mikhail09/pen/WrYvdb Почему желтые квадраты сверху вопреки z-index? если убрать з-индекс у дива и прописать в after z-indez: -1; все отображается как надо? http://codepen.io/mikhail09/pen/KVrpez
-
Ребят извиняюсь что я тут с "таргетом" прикопался, но что то до конца ни как не пойму его св-ва, а именно: - почему в 26 строке если у меня разкоментить z-index все перестает работать, как то с моей логикой не вяжется ведь по идее у обоих блоков z-index: 1; стоит , а когда срабатывает "таргет" z-index: одного из блоков меняется на 2 и соответственно он получается сверху, но что то на практике как то все не так) и если не сложно еще подскажите окуда разрыв между раздел 1 и раздел 2 http://codepen.io/anon/pen/dGjqqK
-
Спасибо. Буду ковырять :target Мне кажется, что лучше через элементы формы. С :target как закрывать-то. С формами пока тяжко, даже не представляю как через формы такое делать
-
А по клику как это можно реализовать?
-
google fonts — это просто. На самом сервисе выбираете нужный шрифт и получаете css, который нужно подключить. А затем в своих стилях пишете font-family: 'PT Sans', и всё работает. да просто по макету замеряются размеры и всё. Хоть инструментом выделения в фотошопе. А можно ещё в браузер расширение pixelperfect поставить, в веб-инспекторе подгонять размеры, и что получится, писать в код. А потом рефакторить, да… Значит будем замерять пиксели) так понимаю делать это по JPEGу не желательно, лучше PSD? Со шрифтами вроде тоже разобрался, размеры подгонять после буду. Еще какие косяки?
-
Порядок пунктов переделал, про шрифты - это мой косяк забыл написать что с ними не стал пока связываться потому что там в ТЗ предложено скачать какой то шрифт (а я так понимаю его потом еще и как то подключать придется чего пока я делать не умею), по этому шрифты оставил по умолчанию. А вот про размеры если можно поподробнее. Где их нужно брать, или просто по картинке пиксели считать, или чисто визуально? Я просто примерно по картинке смотрел что где должно находится и верстал, чтоб все более менее пропорционально было. Видимо тут допустил фатальную ошибку)))
-
Здравствуйте. Нашел простенький макет в глубинах форума. Как раз для новичка пойдет. Прошу оценить верстку и соответствие ТЗ. Верстал по JPEGу, если это важно, хотя и PSD прилагается. Текст задания: 1. Сверстать макет в html. Использовать можно любые технологии. Знание php в этом задании не требуется. 2. При наведении на пункт меню в шапке его фон затемняется как показано на макете. 3. При клике на логотип страница обновляется. 4. Надписи "Just do it" вместе с прозрачным белым фоном по умолчанию не должно быть видно. Она должна появляться при наведении на плашку (черный рисунок с разлетающимися фигурами). 5. Верхняя часть (шапка, меню, логотип, надпись, плашка) - "резиновые", то есть тянутся на всю ширину. Ширина контентной части фиксированная (940px). Так же хорошо, но не обязательно, если будут реализованы следующие вещи: 1. Footer всегда прижат к низу страницы. 2. Шрифт Pt Sans (как на макете). Взять его можно на google fonts. 3. Кроссбраузерная верстка. 4. Плавная анимация появляющихся и исчезающих объектов. http://test13.meximas.com/ тестовый домен моя верстка Вот ссылка на оригинал: клик Вот кстати код если нужен http://codepen.io/mikhail09/pen/mVxNLy
-
Спасибо большое, разобрался. http://codepen.io/anon/pen/obqMBo- вот как это должно было выглядеть, пол дня убил) Это я просто не зная что с display: none и block переходы работать не будут уже начал все подряд подставлять. В таком виде все хоть как то заработало вот и решил его сохранить))) А вот это реально просто спасло, я бы так еще бы не известно сколько над этой проблемой бился не зная. Теперь осталось сделать чтобы прозрачность фона не менялась при переходе, но это я уже сам нагуглю как сделать И еще просьба ко всем, посмотреть окончательно как реализована эта функция (плавное появление текста при наведении) и с экспертной точки зрения оценить корректно ли? или так не делают? а то не хочется к неправильным решениям приучаться
-
Есть блок div class="Top" внутри него другой блок div class="overlay". Сейчас при наведении на блок с классом top блок overlay появляетс но не перемещается плавно вниз, перемещаться он начинает только при наведении на overlay, а надо чтоб перемещался при наведении на top Там в примере по ссылке все поймете когда попробуете навести курсор на черный фон но внизу Прошу прощения если что описал некорректно приходится с телефона печатать
-
Всем здравствуйте. Прошу помощи, ни как не пойму как осуществить чтобы блок с текстом опускался при наведении на .top (сейчас он начинает двигаться при наведении на .overlay а если навести ниже на черный фон то магия заканчивается) Может принципиально не тем свойством пользуюсь? или просто не так его применяю? ни как не разберусь. Вот код http://codepen.io/mikhail09/pen/OMvOae
-
А может кто то объяснить почему так происходит?
-
Спасибо, все оказывается логично и просто. Правда только когда объяснят.
-
Уважаемые форумчане, скорее всего дико туплю но хотелось бы разобраться. после просмотра данного видео урока по созданию менюшек ( ) возник вопрос. На 15:55 минуте он задает ширину для li и после этого выпадающие пункты которые до этого были "float: left" почему то выстраиваются вертикально. Что за ....? по какому праву .....? для меня загадка.