Я щасс раскритикую, пардон , что поздно

addEventListener и прототипы - это хорошо, а вот с ДОМ вы полностью работаете через квери.
Если все равно все грузится через аякс, то вам достаточно получить только ссылку на блок отображения, а все остальное(скрол,блоки) можете формировать сами и непосредственно работать с этим же.
Invis1ble
5.02.2013 - 08:11
Народ, давайте на "ты" уже, если не сложно, ок? )
bodja
Цитата |
с ДОМ вы полностью работаете через квери. |
да, а это разве плохо?
Цитата |
Если все равно все грузится через аякс, то вам достаточно получить только ссылку на блок отображения, а все остальное(скрол,блоки) можете формировать сами и непосредственно работать с этим же. |
чесно говоря, несколько раз перечитал и не понял вообще...
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Invis1ble
Цитата |
да, а это разве плохо? |
А что тут хорошего, и главное зачем?
Цитата |
чесно говоря, несколько раз перечитал и не понял вообще... |
Ну подробне,
если грузим через аякс, значит не формируем сервером хтмл,
аякс - это JS,логично и все остальное по хтмл формировать им же,
ложить в ДОМ и все.
Тоесть у тебя может быть быть 1 див на странице например с ид "content" и все, остальные хтмл элементы формирует JS и с ним же работает.
Так ты сможеш в дальнейшем этот скрипт практически мгновенно подключить к любому шаблону.
Invis1ble
7.02.2013 - 14:17
для сокращения объема кода при сопутствующей кроссбраузерности. Плагин-то для jQuery, что подразумевает, что под рукой уже есть удобный инструмент для работы с DOM. Так почему бы им не воспользоваться?
Цитата |
Тоесть у тебя может быть быть 1 див на странице например с ид "content" и все, остальные хтмл элементы формирует JS и с ним же работает. Так ты сможеш в дальнейшем этот скрипт практически мгновенно подключить к любому шаблону. |
вообще-то так и есть.
bodja, признайся, код мельком смотрел, да? )
Спустя
18 минут, 14 секунд Invis1ble написал(а):
Собственно, вот тут:
https://github.com/Invis1ble/scrollbox/blob...crollbox.js#L46мы формируем DOM
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Invis1ble
DOM построен по обьектной модели и с ним удобно работать в ООП по той же модели.
Квери это фреймворк, он не выступает в качестве класса.
А классы это основа на чем ты строиш ооп.
Тоесть ты сам себе выбил почву из под ног.
Насколько помню , ты же сторонник ООП, так зачем тебе такие сложности.
Цитата |
для сокращения объема кода при сопутствующей кроссбраузерности. Плагин-то для jQuery, что подразумевает, что под рукой уже есть удобный инструмент для работы с DOM |
Ни сокращения,ни кроссбраузерности ни удобства.
Ты видел мои работы,видел размер и знаеш кросбраузерность.
Есть только один плюс квери- это удобство анимации, и то простейшей.Остальное все решаемо.
Цитата |
вообще-то так и есть. bodja, признайся, код мельком смотрел, да? ) |
Да чесно :D , смотрел мельком,типа такого
<div class="' + name + '-bar"></div>
мне не очень понравилось и сразу бросил вникать.
Invis1ble
7.02.2013 - 15:53
Цитата |
Квери это фреймворк |
jQuery - это не фреймворк, а библиотека.
Цитата |
What is jQuery? jQuery is a fast, small, and feature-rich JavaScript library. |
Цитата |
зачем тебе такие сложности. |
какие сложности? я тебя не понимаю, чесно.
Цитата |
Ни сокращения,ни кроссбраузерности ни удобства. |
Цитата |
<div class="' + name + '-bar"></div> |
эти шаблоны вынесены специально в отдельное "публичное" свойство ради гибкости плагина. Можно было бы создавать эти ноды из js, но тогда при потребности сменить тот же тег div на какой-либо другой пришлось бы лезть в код плагина и править под свои нужды (прощай инкапсуляция и все вытекающие из этого). При моем подходе этого не требуется, достаточно переопределить шаблоны на нужные при вызове плагина.
Спустя
5 минут, 16 секунд Invis1ble написал(а):
bodjaВобщем это вопросы религии, я так понял, что тебе просто привычнее писать код на pure-javascript.
Лучше давай по существу.
Есть конкретная проблема, решив которую можно повысить юзабельность плагина очень не хило.
Требуется отслеживать изменения высоты контейнера. Как бы ты решил эту задачу?
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
ладно,о вкусах не спорят :)
Цитата |
Требуется отслеживать изменения высоты контейнера. Как бы ты решил эту задачу? |
Примерно так.
var container=document.createElement('div');
container.innerHTML='text<br>text';
content.appendChild(container);
alert(container.clientHeight);
Получать расчетную высоту блока нужно не до , а после расположения элемента в ДОМ.
Тогда браузер пересчитает и даст новое значение высоты.
Invis1ble
7.02.2013 - 19:34
bodjaтак в коде плагина ведь неизвестно, когда содержимое контейнера меняется. В этом весь прикол.
нужно как-то ловить этот момент и делать перерасчет
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Invis1ble
Что значит неизвестно?
у тебя есть аякс,события,ты сам ложиш туда текст.
Invis1ble
7.02.2013 - 19:40
bodjaКод плагина всего-лишь запускает событие при прокрутке к определенной точке. Как реагирует на это событие клиентский код его не касается и не должно касаться. Подгрузка аяксом - это всего лишь пример, ее может и не быть.
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Invis1ble
Да я чето не могу понять, что нужно?
событие onMouseMove на бегунок повесить?
Invis1ble
7.02.2013 - 20:08
bodjaБлин, я уже не знаю, как еще по-другому объяснить. Все настолько просто, что просто нет других слов... )
Еще раз.
У нас есть html-страница в которой подключен код плагина. На странице есть
<div id="container">тут много текста</div>
Активируем плагин:
$('#container').scrollbox();
$('#container').on('reach', function () {
$('#container').scrollbox('update');
}) ;
Надеюсь, из комментов в коде понятно? )
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Invis1bleПонятно,мой код :)
var scrollBox=new ScrollBox(document.getElementById('container'));
var ajax= new Ajax(scrollBox.update);
Все, только вместе с аяксом :)
Invis1ble
7.02.2013 - 20:32
bodjaтвой подход по сути абсолютно ничем не отличается от моего. Ты передаешь коллбэк scrollBox.update. :(
Спустя
7 минут, 55 секунд Invis1ble написал(а):
Я хочу сделать что-то типа
this.$element.on('DOMChanged', this.update);
У меня есть 3 варианта, как реализовать сие чудо. У всех есть существенные недостатки.
Поэтому я спрашиваю, может кто-то предложит что-то другое.
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Invis1bleНу да, квери это просто обертка, а в итоге она сделает тоже самое.
А вот отвыкать от него прийдется долго и мучительно :).
Вот пример как я запускаю двиг и ставлю сцену в 3D :)
scene = new Scene3D();
skyBox = new SkyBox(cubeTexture);
scene.addChild(skybox);
camera = new Camera3D();
view = new View3D(scene,camera);
addChild(view);
Сложно? -Нет.
Понятно? -да.
Заметь ,здесь используется один метод addChild-сдандартный и один из движка, тоесть здесь нет "подмены понятий",роль они выполняют туже, только в движке DOM идет уже в 3D.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.