Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/20/2014 in Posts

  1. Заказчик (з) - вебдевелопер (в) в - Чем вы занимаетесь?з - У меня лимузинв - Что бы хотели видеть на сайте?з - Я сижу в лимузине, еду на посетителя, потом останавливаюсь и подмигиваю и говорю, ПОЕХАЛИ!в -Это будет стоить ХХХХХз -Ого, давайте я не буду мигать
    1 point
  2. Пожалуйста Этот gruntfile - солянка из bootstrap'а, подсмотренного и своих соображений. Там еще должен быть imagemin, но не смог победить глюк: на png зависает навсегда. Пришлось исключить, а картинки тупо копируются куда нужно. Если что, отвечу на вопросы. Если есть предложения как сделать лучше, с удовольствием послушаю. Для новичков, кто еще не знаком с git, вот руководство: http://hexvolt.blogspot.ru/2014/01/git-1.html http://habrahabr.ru/post/106912/ Мне очень помогло.
    1 point
  3. Если использовался паттерн, то можно так. Копируете его в свою коллекцию (есть там такая кнопка "create a new preset from the current pattern", не знаю как называется в русском варианте фш). Далее просто наводите мышкой на новый паттерн и видите в всплывающей строке его размер. Создаете файл с такими размерами и заливаете вашим паттерном. Фон готов.
    1 point
  4. тут http://htmlforum.ru/index.php?showtopic=48987&hl= был предложен вполне достойный вариант а тут: http://htmlforum.ru/index.php?showtopic=47141#entry322241 выложен набросок и небольшой мануал.
    1 point
  5. Ну или http://masonry.desandro.com/ или подобное привлекать. Оно вроде тоже так и делает. Можно еще так http://css-live.ru/articles/krasivoe-vyravnivanie-blokov-po-rezinovoj-setke.html но не всегда срабатывает.
    1 point
  6. 1 point
  7. Тоже самое http://jsfiddle.net/me4ga/1/
    1 point
  8. Ну вы как минимум посмотрите на свой профиль: «Пустой профиль. Пользователь ещё ничего не рассказал о себе.» 8 работ за два года — тоже как-то слабовато. Попытайтесь увидеть себя со стороны, сравните свою страницу со страницей какого-нибудь «успешного» фрилансера. Пересмотрите цены — может, надо брать больше? Например, если я когда-то заказываю что-то, то цена в 5$ за час работы мне бы показалась подозрительной — профи не возьмёт так мало (лично моё мнение).
    1 point
  9. Мне давно было интересно как устроен всеми любимый jQuery и вот я решил засесть за него (благо что исходники у него открытые). И вот, по просьбе камрада mishka2 я рассказываю, что я выяснил, как работает этот фреймворк и как написать свой такой же. Прежде всего пара фишек яваскрипта, про которые не все начинающие знают: 1) Имена функций: В яваскрипте валидными считаются любые имена функций, которые начинаются с буквы, со знака доллара ($) и со знака подчеркивания (_). Так что когда вы используете ваш любимый jQuery, вызывая к примеру $(document), знайте, что вы вызываете функцию у которой имя $ и передаете ей в качестве аргумента document. 2) Вызов функций: Обычно все пишут какую-нибудь функцию, к примеру: function myFunc() { alert(1); } // или так var myFunc = function() { alert(1); } а потом вызывают ее, но многие не знают, что в яваскрипте можно вызвать функцию сразу при создании вот таким методом: (function() { // создаем функцию alert(1); })(); // и тут же вызываем ее 3) Переменные и функции: Яваскрипт - это объектно ориентированный язык программирования. В нем все является либо объектами, либо свойствами объектов. Даже если вы используете процедурный подход к программированию (создаете отдельные функции и оперируете ими), вы все равно создаете объекты, т.к. в яваскипте любая функция - это объект. Т.е. вы можете вызвать ее через оператор new и рабоать с ней как с объектом. Когда вы создаете переменную в глобальной области видимости, то она записывается как свойство глобального объекта window. Т.е.var a = 1; и window.a = 1 эквивалентны. Ну вот теперь многие вещи в jQuery станут понятны. Самое интересное в jQuery то, что как только вы поздключили его на страницу он у вас сразу инициализирован. Давайте посмотрим как это сделано. 1) Для начала давайте создадим наш объект, назовем его Helper, у него будет пока единственный метод init(), который должен будет инициализировать его. А делать наш объект будет всего одну вещь - находить по ID элемент на странице или получать уже найденный элемент как ноду и возвращать его: var Helper = { init: function(elem) { elem = typeof elem == 'string' ? document.getElementById(elem) : elem; return elem; } } Фишка в том, что нам надо будет обязательно инициализировать наш объект, для того чтобы он заработал, т.е. нам нужно будет где-либо на странице вызвать метод init(): alert(Helper.init('id_элемента')); Но нам то нужно получить что-то вроде такого: alert(Helper('id_элемента')); Тут то нам и приходит на помощь вызов функции сразу при создании, единственное, что нам потребуется это анонимная функция (т.е. функция без имени), которая будет вызываться сразу же после создания и вспомогательная функция, которая будет инициализировать наш объект и возвращать его: (function() { // анонимная функция var Helper = function(elem) { // вспомогательная функция return new Helper.foo.init(elem); // которая возвращает нам уже проинициализированный объект } Helper.foo = { // наш основной объект init: function(elem) { // метод, где происходит инициализация elem = typeof elem == 'string' ? document.getElementById(elem) : elem; return elem; // метод возвращает нам ссылку на ноду } } })(); // сразу же вызываем анонимную функцию У внимательного читателя должен возникнуть вопрос: "Откуда взялся Helper.foo? И почему именно так?". Все дело в наследовании прототипов. Вообще, прототипы в яваскрипте это довольно сложная для понимания штука. В конце я дам ссылки на ресурсы где про это можно почитать. Признаюсь, сам перечитывал раз 10, но все равно не понял до конца как они работают. Скажу лишь, что когда мы пишем new Helper.foo.init(elem);, то не создаем новый объект с именем Helper.foo как вы могли подумать, а создаем новый объект с именем Helper.foo.init (т.к. init() - тоже функция), у которого нет ни одного метода. И чтобы использовать все методы которые мы будем добавлять в Helper.foo в дальнейшем на понадобится переопределить прототип Helper.foo.init. Пока все это звучит очень запутанно, но я надеюсь, что когда вы увидите дальнейший код, то все поймете. Итак, теперь у нас есть проинициализированный объект и казалось бы мы можем его начать вызывать, но (как вы должны знать) переменная Helper у нас получилась не глобальной, т.к. она находится внутри анонимной функции. Чтобы начать использовать наш Helper нам надо передать его в глобальную область видимости, вот так это сделано в jQuery: (function() { // анонимная функция var Helper = function(elem) { // вспомогательная функция return new Helper.foo.init(elem); // которая возвращает нам уже проинициализированный объект } Helper.foo = { // наш основной объект init: function(elem) { // метод, где происходит инициализация elem = typeof elem == 'string' ? document.getElementById(elem) : elem; return elem; // метод возвращает нам ссылку на ноду } } // передаем переменную Helper в глобальную область видимости window.Helper = Helper; })(); // сразу же вызываем анонимную функцию Все, теперь вы можете использовать проинициализированный объект: <body> <div id="test"></div> <script type="text/javascript"> alert(Helper('test')); </script> </body> Но позвольте, откуда же в jQuery берется доллар? Все очень просто - пусть у нас будет два доллара: (function() { var Helper = function(elem) { return new Helper.foo.init(elem); } Helper.foo = { init: function(elem) { elem = typeof elem == 'string' ? document.getElementById(elem) : elem; return elem; } } // создаем два доллара window.Helper = window.$$ = Helper; })(); И вызываем: <body> <div id="test"></div> <script type="text/javascript"> alert($$('test')); </script> </body> Однако, если в jQuery вызвать $('#test'), то он вернет не ссылку на ноду а сам себя, т.е. объект jQuery и чтобы получить ссылку на ноду в jQuery нам придется сделать что-то вроде этого: <body> <!-- Используем jQuery --> <div id="test"></div> <script type="text/javascript"> alert($('#test')); // выведет [object Object] (сам себя) alert($('#test')[0]); // выведет [object HTMLDivElement] </script> </body> Все это потому, что все найденные элементы jQuery цепляет к себе. Ничто не мешает нам сделать так же: (function() { var Helper = function(elem) { return new Helper.foo.init(elem); } Helper.foo = { init: function(elem) { elem = typeof elem == 'string' ? document.getElementById(elem) : elem; this[0] = elem // цепляем элемент к объекту return this; // возвращаем не элемент, а наш объект } } window.Helper = window.$$ = Helper; })(); Вот у нас и получится тоже самое: <body> <!-- Используем наш фреймворк --> <div id="test"></div> <script type="text/javascript"> alert($$('test')); // выведет [object Object] (сам себя) alert($$('test')[0]); // выведет [object HTMLDivElement] </script> </body> Теперь давайте добавим в наш фреймворк какой-нибудь метод, например пусть у него будет имя getNodeName(), а возвращать он будет имя ноды: (function() { var Helper = function(elem) { return new Helper.foo.init(elem); } Helper.foo = { init: function(elem) { elem = typeof elem == 'string' ? document.getElementById(elem) : elem; this[0] = elem return this; }, getNodeName: function() { // наш новый метод // возвращает имя ноды найденного объекта в верхнем регистре return this[0].nodeName.toUpperCase(); } } window.Helper = window.$$ = Helper; })(); Давайте попробуем при помощи нашего нового метода узнать имя ноды: <body> <div id="test"></div> <script type="text/javascript"> alert($$('test').getNodeName()); // Ошибка !!! </script> </body> Почему же это не работает? Как я уже говорил выше, вспомогательная функция Helper создает новый объект с именем Helper.foo.init, а внутри нашего метода init() нет никаких других методов. Поэтому нам надо переопределить прототип для Helper.foo.init, т.е. указать скрипту явно, что шаблоном нашего объекта является не Helper.foo.init, а Helper.foo. Причем наш объект foo должен храниться обязательно как свойство объекта Helper иначе (если я правильно понял, прочитав кучу статей про прототипы) переопределить прототип не получится. (function() { var Helper = function(elem) { return new Helper.foo.init(elem); } Helper.foo = { init: function(elem) { elem = typeof elem == 'string' ? document.getElementById(elem) : elem; this[0] = elem return this; }, getNodeName: function() { return this[0].nodeName.toUpperCase(); } } Helper.foo.init.prototype = Helper.foo; window.Helper = window.$$ = Helper; })(); Вот теперь все заработает: <body> <div id="test"></div> <script type="text/javascript"> alert($$('test').getNodeName()); // выведет DIV </script> </body> Ну вот и все, теперь вы можете расширять свой фреймворк, добавляя туда новые методы и использовать его так же как и jQuery. Теперь вы представляете как устроен этот фреймворк. Конечно то что я тут описал - это очень сильно упрощенная версия jQuery. Она умеет находить ноду только по ID и в ней нет кучи полезных фишек jQuery. Но я не волшебник, я только учусь. Многое еще остается в jQuery для меня не ясным, но надеюсь со временем я его таки доковыряю P.S. Что я читал: http://javascript.ru/ecma/part8#_Prototype_ http://javascript.ru/tutorial/object/inher...type-i-prototip http://code.jquery.com/jquery-1.4.2.js http://dklab.ru/chicken/nablas/40.html
    1 point
  10. дело в том, что существуют разные направления разработки и бюджеты. где-то требуется решение написанное от и до самим. а где-то без готовых решений не обойтись если например в студию поступило 10 заказов на сайты-визитки для детских садов, то неразумно и невыгодно по деньгам будет изобретать велосипед. или если например сбербанк заказал сделать сайт с интеграцией платёжных систем и какими-нибудь хитрыми картотеками, то не подойдёт никакая цмс
    1 point
  11. Нет. Нарисуйте лучше картинку. Может так http://jsfiddle.net/npofopr/9hKS6/ http://jsfiddle.net/npofopr/cNKL3/ http://jsfiddle.net/npofopr/5HQLw/
    1 point
  12. о боже посмотрите как я подписал классы к блокам, какой я гений вся идея с бутстрапом мусор и глупая стандартизация, не понимаю людей которые верстают с данным плагином.
    -1 points
  13. Минус поставить- для школы святое! Я могу с точностью сказать, что ни один профессионал не будет верстать вот под этим, потому что нормальные проекты индивидуальны и у каждых заказчиков разные требования, бутстрап набор стереотипов рынка-недоучек. + к этому цена на работу верстальщика падает вот из-за таких вот гавнокодов
    -1 points
  14. это плохая вёрстка? сделана на бутсрапе, насколько я понимаю Что в этом может быть хорошего ? Такую сетку с классами можно создать за 30 минут своими руками и под особенности проекта. Теперь каждый шклотник может прийти и смело заявить, что он верстальщик и веб разработчик Не зная ни си сс ни штмл, но зато умеет подписывать классы к блокам, вот такой вот он мастер Вы что реально не понимаете к чему это гавно-унификация видёт ?А я скажу..тут анализа то глубокого не нужно.. На рынке упадёт цена за услуги верстальщика.Каждый вот такой с бутстрапом будет приходить и говорить что он мастер Вы тут все хотите всё изучать и стать мастерами во всём, но используете одни фреймворки.. Значит, в языке/разметки и стилей я уже хорош, бутстрап освоил, зачем знать js ? Я думаю библиотек мне достаточно ( но вы так хотите изучить js, но в итоге юзаете одни фрейм-ворки и готовые решения и ничего сами не делаете, специалисты хреновы... Я сам не профессионал, но люди работающие серьёзно в этой сфере с этим говном дела иметь не будут, почему? Выше всё описано.. А для шклотников,самое то
    -1 points
  15. Аналогичные высказывание я слышал тут же на форуме наврено лет 4-5 назад. Но время показывает что все совершенно наоборот.@Mugen1, данная ветка не обсуждает плюсы и минусы того или иного решения. Все твои посты будут расцениваться как флуд с соответствующим наказанием, согалсно правил форума. На данном форуме, будь любезен, высказыватся по теме. И что же наоборот ? горе бутстраперы бегут верстать за 300р страницу, а заказчики уже и не считают вёрстку работой. Вы ничего не видите, и объективно осветить не можете. У хорошего разработчика всегда лежит папка с ресетами и заготовками, чтобы встраивать более стандартные вещи, но это дерьмо не достойно ни внимания ни уважения, а те кто это юзает, просто ленивые криво-ручки
    -1 points
  16. Причём здесь цмс, зачем ты мешаешь совершенно 2 разных плоскости ? Зачем ты лезешь в дисскас заведомо не имея ни одного аргумента? ахаха то есть, ты сейчас делаешь из людей, которые пишут руками код дураков ?Только такой вот о ком я и говорил может сравнить чистый код, с фреймворком. Зачем мне подписывать классики к блокам, когда я сам могу это сделать, зачем мне пользоваться заготовками и унифицировать стиль когда на это рессетов хватает, всё для вас любителей быстро где то пёрнуть и выдать это за шедевер. Шёл бы ты свой бутстрап изучать Больше ни слова, мне всё стало ясно.
    -1 points
  17. Уважаемые! Как сделать свои, красивые, НЕ СТАНДАРТНЫЕ социальные кнопки на сайт?! Не прибегая к сторонним сервисам типа http://share.pluso.ru/ и ему подобные... Опишите пожалуйста наиболее подробно.
    -1 points
  18. Есть таймер нужно поменять его точку отчета на 5:48:34 http://jsfiddle.net/edudyak/ABK9L/
    -1 points
This leaderboard is set to Kiev/GMT+02:00
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy