Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) 1 [2] 3 4  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> jquery-плагин для стилизации прокрутки, оцените работу и код
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




Я щасс раскритикую, пардон , что поздно smile.gif
addEventListener и прототипы - это хорошо, а вот с ДОМ вы полностью работаете через квери.
Если все равно все грузится через аякс, то вам достаточно получить только ссылку на блок отображения, а все остальное(скрол,блоки) можете формировать сами и непосредственно работать с этим же.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


Народ, давайте на "ты" уже, если не сложно, ок? )

bodja
Цитата
с ДОМ вы полностью работаете через квери.

да, а это разве плохо?
Цитата
Если все равно все грузится через аякс, то вам достаточно получить только ссылку на блок отображения, а все остальное(скрол,блоки) можете формировать сами и непосредственно работать с этим же.

чесно говоря, несколько раз перечитал и не понял вообще...


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




Invis1ble
Цитата
да, а это разве плохо?

А что тут хорошего, и главное зачем?

Цитата
чесно говоря, несколько раз перечитал и не понял вообще...

Ну подробне,
если грузим через аякс, значит не формируем сервером хтмл,
аякс - это JS,логично и все остальное по хтмл формировать им же,
ложить в ДОМ и все.
Тоесть у тебя может быть быть 1 див на странице например с ид "content" и все, остальные хтмл элементы формирует JS и с ним же работает.
Так ты сможеш в дальнейшем этот скрипт практически мгновенно подключить к любому шаблону.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


Цитата
главное зачем?

для сокращения объема кода при сопутствующей кроссбраузерности. Плагин-то для jQuery, что подразумевает, что под рукой уже есть удобный инструмент для работы с DOM. Так почему бы им не воспользоваться?
Цитата
Тоесть у тебя может быть быть 1 див на странице например с ид "content" и все, остальные хтмл элементы формирует JS и с ним же работает.
Так ты сможеш в дальнейшем этот скрипт практически мгновенно подключить к любому шаблону.

вообще-то так и есть.
bodja, признайся, код мельком смотрел, да? )



Спустя 18 минут, 14 секунд Invis1ble написал(а):
Собственно, вот тут:
https://github.com/Invis1ble/scrollbox/blob...crollbox.js#L46
мы формируем DOM


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




Invis1ble
DOM построен по обьектной модели и с ним удобно работать в ООП по той же модели.
Квери это фреймворк, он не выступает в качестве класса.
А классы это основа на чем ты строиш ооп.
Тоесть ты сам себе выбил почву из под ног.
Насколько помню , ты же сторонник ООП, так зачем тебе такие сложности.

Цитата
для сокращения объема кода при сопутствующей кроссбраузерности. Плагин-то для jQuery, что подразумевает, что под рукой уже есть удобный инструмент для работы с DOM

Ни сокращения,ни кроссбраузерности ни удобства.
Ты видел мои работы,видел размер и знаеш кросбраузерность.
Есть только один плюс квери- это удобство анимации, и то простейшей.Остальное все решаемо.

Цитата
вообще-то так и есть.
bodja, признайся, код мельком смотрел, да? )

Да чесно :D , смотрел мельком,типа такого
<div class="' + name + '-bar"></div>

мне не очень понравилось и сразу бросил вникать.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


Цитата
Квери это фреймворк

jQuery - это не фреймворк, а библиотека.
Цитата
What is jQuery?
jQuery is a fast, small, and feature-rich JavaScript library.


Цитата
зачем тебе такие сложности.

какие сложности? я тебя не понимаю, чесно.

Цитата
Ни сокращения,ни кроссбраузерности ни удобства.

да ладно? они => blink.gif blink.gif blink.gif в шоке

Цитата
<div class="' + name + '-bar"></div>

эти шаблоны вынесены специально в отдельное "публичное" свойство ради гибкости плагина. Можно было бы создавать эти ноды из js, но тогда при потребности сменить тот же тег div на какой-либо другой пришлось бы лезть в код плагина и править под свои нужды (прощай инкапсуляция и все вытекающие из этого). При моем подходе этого не требуется, достаточно переопределить шаблоны на нужные при вызове плагина.



Спустя 5 минут, 16 секунд Invis1ble написал(а):
bodja
Вобщем это вопросы религии, я так понял, что тебе просто привычнее писать код на pure-javascript.
Лучше давай по существу.
Есть конкретная проблема, решив которую можно повысить юзабельность плагина очень не хило.
Требуется отслеживать изменения высоты контейнера. Как бы ты решил эту задачу?


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




ладно,о вкусах не спорят :)
Цитата
Требуется отслеживать изменения высоты контейнера. Как бы ты решил эту задачу?

Примерно так.
var container=document.createElement('div');
container.innerHTML='text<br>text';
content.appendChild(container);
alert(container.clientHeight);

Получать расчетную высоту блока нужно не до , а после расположения элемента в ДОМ.
Тогда браузер пересчитает и даст новое значение высоты.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


bodja
так в коде плагина ведь неизвестно, когда содержимое контейнера меняется. В этом весь прикол.
нужно как-то ловить этот момент и делать перерасчет


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




Invis1ble
Что значит неизвестно?
у тебя есть аякс,события,ты сам ложиш туда текст.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


bodja
Код плагина всего-лишь запускает событие при прокрутке к определенной точке. Как реагирует на это событие клиентский код его не касается и не должно касаться. Подгрузка аяксом - это всего лишь пример, ее может и не быть.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




Invis1ble
Да я чето не могу понять, что нужно?
событие onMouseMove на бегунок повесить?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


bodja
Блин, я уже не знаю, как еще по-другому объяснить. Все настолько просто, что просто нет других слов... )
Еще раз.
У нас есть html-страница в которой подключен код плагина. На странице есть
<div id="container">тут много текста</div>

Активируем плагин:
// Это клиентский (по отношению к плагину) код
$('#container').scrollbox(); // активация плагина. Появляется полоса прокрутки.
$('#container').on('reach', function () { // слушаем событие плагина "reach", которое возникает при прокрутке в самый низ
// поймали событие reach.
// тут к примеру засовываем новый контент в контейнер
// после изменения DOM в контейнере требуется перерасчитать высоту и позицию полосы прокрутки, на данный момент реализуется с помощью прямого указания плагину о необходимости перерасчета:

$('#container').scrollbox('update'); // очень дубово. В идеале плагин должен сам ловить изменения в DOM'е и делать автоматом моментально перерасчет
}) ;

Надеюсь, из комментов в коде понятно? )


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




Invis1ble
Понятно,мой код :)

var scrollBox=new ScrollBox(document.getElementById('container'));//активация скроллбокса,передаем ссылку на контейнер.
var ajax= new Ajax(scrollBox.update);//активация аякса, передаем ему ссылку на метод или обьект скроллбокса при обновлении данных.

Все, только вместе с аяксом :)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11789
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 17 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 17 дней


bodja
твой подход по сути абсолютно ничем не отличается от моего. Ты передаешь коллбэк scrollBox.update. :(



Спустя 7 минут, 55 секунд Invis1ble написал(а):
Я хочу сделать что-то типа
// код плагина
// this.$element - это контейнер, DOMChanged - гипотетическое событие, которое возникает при изменении DOM'а

this.$element.on('DOMChanged', this.update);

У меня есть 3 варианта, как реализовать сие чудо. У всех есть существенные недостатки.
Поэтому я спрашиваю, может кто-то предложит что-то другое.


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bodja  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1483
Пользователь №: 28208
На форуме: 5 лет, 6 месяцев, 5 дней
Карма: 61




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.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) 1 [2] 3 4  Ответ в темуСоздание новой темыСоздание опроса