Так точно!
А на вопрос "нужно ли":
Просто когда приходится скроллить более 1 монтира в низ, и каждый отвечает каждому, то довольно сложно понять кто кому отвечает :)
P.S. Можно ведь устроить голосовалку..
раз тема пошла, выскажусь: очень неудобен формат сообщение с вложенными комментариями.. Намного удобнее, когда сообщения добавляются к последнему, хоть знаешь где искать. Как вариант, реализовать примерно как на ютубе - все сообщения идут подряд, но когда кто то кому то отвечает, выводить ссылку "это ответ на сообщение #23433" при нажатии на которую появляется то сообщение, на которое ответили.. ну сейчас так и есть в этом плане =)
Это все ИМХО, конечно. Лично мне теперешний формат сообщений очень неудобен. Когда их 10-20 - еще ничего, но когда много - нечитаемо.
Ютубовский вариант ужасен!!! И совершенно не читабелен. Кто, кому, на что ответил - хрен поймёшь.
А вам могу посоветовать читать ветками, чтобы не утратить нить беседы. Собственно, для того древовидная структура и придумана. Дочитали ветку, свернули, читаем следующую. Всё просто.
например, когда я вхожу на трекер, я вижу: "новых ответов: 129" - для того, чтобы мне прочесть ВСЕ ответы, мне надо пролистать ВСЕ сообщения, ибо, ответы были на N количество разных сообщений. Удобно?) мне нет
Было бы не плохо так сделать. Только тогда нужно ещё решить что делать с разбиением темы на страницы. Если его убрать то треды с количеством сообщений более 100 будут страшно смотреться и долго грузится (особенно типа таких, в которых уйма картинок и прочего)
Хорошо. Надо будет подумать как такое сделать. И что все же будет удобней в нашем случае, вертикальные линии или точки. Вероятней всего это jQuery пилить придется, в котором я не очень силен, но думаю, разберусь. Если кто-то может помочь - вэлкам.
На ЛОРе простыня: совсем другое устройство форума. Я так тоже не хочу :)
Пускай можно будет сворачивать треды, но по умолчанию пускай они будут все развёрнуты.
А мне кажется, как раз телефоно-планшетникам удобнее будет, свернуть кучу фигни и всё, а десктопникам сворачиванием быстрее определить к чему всё было...(ну и тоже свернуть кучу фигни)
Хабр не светоч юзабилити. Лично мне его точки всегда были непонятны.
Лучше спросить себя: чего Я хочу? Вероятно, ответ: видеть на чей коммент этот ответ и не терять нити беседы.
Решается в лоб надписью "ответ %username%", можно с номером камента. А можно ещё эту надпись сделать ссылкой на отвечаемый камент, благо все каменты имеют якоря.
Нелишним будет, как предложила Жюстина, сворачивать ветки или тело сообщения.
Посмотрел счас код - делается левой пяткой.
Для сворачивания только тела комента достаточно добавить: $(document).ready(function() { $(".csubmitted").click(function() { $(this).next(".content").slideToggle(100); }); });
Для сворачивания ветки: $(document).ready(function() { $(".csubmitted").click(function() { $(this).parent().next(".indented").slideToggle(100); }); });
- но тут надо юзабилити ещё допилить, чтобы видно было, что ветка свёрнута.
Еще вариант:
При наведении или клике на надпись "ответ %username%" показывать всплывающее окошко (div) с текстом камента. Тоже делается на jQuery, но уже в три левыхъ пятки и в одну правую.
Больше мыслей и идей! Хороший и разных! :)
Хабр не светоч - факт. Но в нем больше юзабельность, с его точками, чем наведи мышкой и крути в низ :)
Ваша идея очень хорошая. Ну и в диалоге\споре рождается истина
За три года что был на хабре, так и не понял смысл точек.
Там ещё и крутить чего-то куда-то надо было >< 0о
Да в жопу такое юзабилити!
Кто-то выше правильно написал, удобнее, чтобы при наведении всплывал текст с комментом, на который был ответ.
Кстати с хабра удалился в этом году нафиг, ибо нефиг зря время тратить.
так мы сюда приведем толпу гуглокодеров и заставим их делать - так как надо нам\так как они делали у себя? Или же силами сообщества будем делать?
Самое простое в сложившейся ситуации - оставить как есть. Либо устроить голосование.
Я вот не понимаю критику людей в виде "это все хреново, лучше так не делать", но своего не предлагающие. Если критикуете, так будьте добры выставить свой вариант на показ. Иначе лучше промолчать.
Решать, как это будет ли меняться, и как именно будет меняться, все равно будет dm, а не я, или вы.
При этом никто не мешает приводить удачные или не очень примеры и высказывать свои мысли на этот счет. В конечном итоге постараюсь сделать что бы было удобно. Хотя давно знаю, что всем угодить все равно не получится.
А я как раз и высказал мысли на этот счет.
Ибо часто путаешься, куда, кто и кому ответил.
Правда, конечно подсказали, теперь как смотреть ответы... :-)
Вам не нравится как на ютубе, ну а как вам нравится?
Откуда, многоуважаемому, dm'y знать: как Вам нравится?
--
Именно это я и имел ввиду, говоря, что вы говорите, что вам не нравится так как предлагают, но и не предлагаете своего варианта.
У меня нет конкретного предложения как изменить треды, чтоб было хорошо.
Но у меня есть мнение, как не хотелось бы, чтоб выглядело. Один из примеров, как не хотелось бы, и есть ютуб. (ну не нравится мне тот способ организации бардака, не нравится)
В конце концов, может быть у меня мнение, как мне НЕ нравится, и при этом не быть мнения, как именно мне нравится?
Возможно, что это Вам и не понять, но у меня именно так сложилось...
Вероятнее всего, это связано с тем, что я не сталкивался с идеальным (разумеется, для меня) "тредообразованием" (с) наверное я :-)
После некоторых экспериментов, решил делать примерно по этой схеме, то есть сворачиваемые ветки и сворачиваемое обсуждение с показом коммента на который идет ответ. Но вот уже несколько дней не могу понять, как зафиксировать комментарий что бы он не уезжал за границы экрана при анимации (.slideToggle). То есть что бы комментарий на который мы хотим увидеть ответ оставался в той же части экрана что и был до сворачивания ветки а не перемещался при анимации. Если кто знает как это можно сделать, прошу подсказать. Если надо, могу выложить что я там накодил.
P.S. Еще вот не знаю, делать border-radius у комментариев (закругленные углы) или так как есть оставить?
Вот, это та часть кода, которая сворачивает ветки комментариев позволяя увидеть на какой комментарий был дан ответ. Все работает, но при сворачивании комментарий уезжает вверх, а мне хочется, что бы он оставался на месте а все остальное смещалось относительно него, как такое сделать пока никак не могу понять.
Если я правильно понял, то проблем в том, что jQuery сворачивает снизу вверх, а не сверху вниз.
Можно проскроллить документ вниз на то количество пикселей, на которое уехал коммент вверх.
То есть вызнать .scrollTop() .offset() до сворачивания и .scrollTop() .offset() после, а потом прокрутить документ. Анимация будет забавной ;)
Можно заранее вычислять количество пикселей требуемых для скролла, но геморность этого метода вызывает сомнения в целесообразности его применения. PS <a class='otvet' href='#'> можно смело менять на <span class='otvet'> всё равно без скрипта <а> не отработает. И return false; не потребуется.
Про scrollTop тоже думал, но как то это костыльно получается и с анимацией действительно как то странновато. Но если других вариантов нет, то пускай будет так. Просто у меня нет большого опыта работы с jquery потому предполагал, что у меня просто знаний маловато для безкостыльной реализации подобного.
PS <a class='otvet' href='#'> можно смело менять на <span class='otvet'> всё равно без скрипта <а> не отработает. И return false; не потребуется.
Спасибо за замечание, но я это знаю, просто сделал ссылкой что бы стили дополнительные не писать а выглядело все нормально. Там еще конечно надо будет все доработать в конечном варианте.
Тэкс, вот изменённый код. $(document).ready(function() { $("div.indented div.comment div.csubmitted").append(" <a class='otvet' href='#'>Ответ на комментарий ...</a>"); $("a.otvet").click(function() {
var this_offset = $(this).parent(".csubmitted").parent(".comment").offset().top var parent_offset = $(this).parent(".csubmitted").parent(".comment").parent(".indented").offset().top var curr_scroll = $(document).scrollTop(); var diff = curr_scroll - (this_offset - parent_offset)
Да там баги повылезали, а с моим знанием jquery все очень медленно происходит. А с багами как то не хочется выкладывать. Может сегодня еще посижу попробую все доделать.
Безусловно круть и удобно, но при условии, что комментарий, который показывается, короткий и его не приходиться скроллить вверх, чтобы прочитать сначала. Или я что то не так понял?
не надо скроллить. наводишь курсором на надпись "в ответ на..." в заголовке сообщения и автоматически над ним появляется сообщение на которое этот ответ был дан
И сразу багрепорт!
1. После отправки ответа на сообщение, всё ломается: каждое новое наведение на "в ответ на..." прокручивает страницу к началу и инициирует создание новых ссылок "в ответ на...". В результате количество "в ответ на..." в шапках постов плодится и множится.
2. При прокручивании страницы полно ложных срабатываний, так-как курсор то и дело оказывается над "в ответ на...". Думаю, имеет смысл сделать сворачивание всё-таки по клику.
Довольно удобно. Только предлагаю при наведении мышью на "В ответ на..." делать курсор "Пальчиком", а то я, если бы не посмотрел эту тему, то не додумался бы. Да и саму надпись выделать было бы не плохо.
А можно вообще сделать, не при наведении, а при щелчке, но уже больше придирки))
Ещё маленькая ошибочка. Решил проверить, как оно будет работать в темах с несколькими страницами. На первой странице всё работает, а если перейти на вторую/третью/n'ную, то надпись "в ответ на..." пропадает.
Тоже стало интересно: а как "в ответ на..." поведёт себя в случает, если одна ветка комментариев будет разделена на 2 страницы, то есть если комментарий, на который был дан ответ, будет находиться на другой старнице? Если такое вообще может быть.
Решил проверить, как оно будет работать в темах с несколькими страницами. На первой странице всё работает, а если перейти на вторую/третью/n'ную, то надпись "в ответ на..." пропадает.
Исправил. С остальным пока нет мыслей как сделать.
Заметил "ачепятку" при клике на "в ответ на..." на этом месте появляется "развернуть", но пост на который отвечают и так развернут, наверно лучше будет "свернуть".
Есть еще вариант вложенности комментариев, как например тут. А дальше можно улучшить восприятие сделав четные комментарии одним цветом, а нечетные другим. Плюс, как уже говорилось, всплывающее окно родительского комментария.
Придумал гениальную идею! :)
Итак, нужно добавить возможность сворачивать ветки. Ветки сворачиваются снизу: дочитал до конца, нажал кнопку и ветка свернулась, дав возможность видеть родительский комментарий и соседние ветки.
По-умолчанию все ветки развёрнуты. После сворачивания, на месте ветки остаётся маленькая кнопочка "развернуть".
В результате точки с хабра не нужны, линии и вложенные комментарии не нужны. Древовидная структура обсуждения остаётся наглядной и удобочитаемой при любой разветвлённости.
Было бы идеально запоминать состояние свёрнутости, чтобы возвратившись в тему, пользователь увидел развёрнутыми только те ветки, в которых имеются новые сообщения.
предлагаю dm'у устроить голосование с вариантами которые понравились Ему. А Мы веберм из этих вариантов. Как такая идея?
Обиженных и недовольных не будет\сведется к минимуму, т.к. решали все xD
ну Топик Добра принес добро, попутно захватив с собой Полезность. Так что миссия Топика выполнена! Всем огромное спасибо за труд. Стало архиудобно и отпала нужда крутить-вертеть :)
Аааааааааа, двачую голосую за кнопочку, хоть на jquery, хоть на javascript с надписью: "К следующему непрочитанному сообщению", с рисунком из красной стрелочки вниз, и нормальным функционалом... Брр.. или я не туды со своим сообщением? О_о
В общем тяжко искать непрочитанные сообщения, особенно когда они разбросаны по всему треду так сказать...
Болтающуюся кнопачгу в правом верхнем углу?
При нажатии на которую тебя опускает/поднимает к новому сообщению?
У нового же сообщения есть какой-нибудь параметр "New comment", и даже восклицательный знак! Вот пусть к нему и скачет....
Но да, думать - это верно!
В смысле мы все сжали кулачки и ждём, и надеемся!
Ммм. Может лучше кнопачку, которая сворачивает все прочитанные в заголовок?
И/или стилю "comment-new" добавить красный бордюр или красный аутлайн или красный box-shadow
со сворачиванием может неудобно быть. захочется прочитать предыдущие ответы к сообщению, а их надо разворачивать. можно конечно сделать чтобы всё развернуть, а-то по-одному если то точно не нужно.
фон у нового сообщения идея хорошая, но кнопка была бы лучше. или вообще и то и другое. но это уже как получится сделать.
Да-да-дад!
Именно прыгать 8)
Представь если в треде оver 150 сообщений. Я сейчас пролистываю их, и ищу если они не по порядку новые, а тут-и-там появившиеся комментарии.
А если с телефона? Аааааа, бедный тачскрин...
А так на кнопку бац - и вот он, заветный комментарий... !
Вот единственная проблема - это когда начинается многостраничность..... Как прыгать на другую страницу...
В общем думать и думать...
Добавил ссылку "к следующему новому" которая будет появляться там же где "ответить" у новых комментариев. При нажатии будет переходить к следующему непрочитанному комментарию. Так же туда же перенес "в ответ на...".
Я нахожусь на первой странице, читаю новый комментарий. На второй странице меня ждут ещё два непрочитанных комментария. Если я нажму "к следующему новому", что получу?
Дима, когда отвечаешь на комментарий, который был помечен как новый, кнопки "в ответ на..." начинают утраиваться. Причем, ВНЕЗАПНО, у всех комментов, которые помечены как новые.
о, симпатичненько, как по мне существенно понятнее. :-)
с переходом на вторую страницу - да, есть проблема.
Есть у меня такая привычка открывать тему, в которой помечено новое, не всегда помнишь знаешь, сколько там страниц... :-(
О! Появилась гениальная идея! Что если убрать разбивку на страницы, но сделать содержимое страницы динамически подгружаемым по мере прокрутки? Это уменьшит количество сложных проблем на одну. :)
нажимаю "в ответ на..." под твоим комментарием. сворачивается всё правильно. нажимаю на любой другой - не работает. браузер ФФ что на кубунте что на семерке одинаково.
сейчас вроде заработало
Вероятно можно. Но не уверен, что нужно. ИМХО тогда уж линиями наглядней, хотя опять же надо думать, нужно ли это.
ИМХО точки показывают какой номер комментария в иерархии ответов, так наглядней нежели просто полоса
Так точно!
А на вопрос "нужно ли":
Просто когда приходится скроллить более 1 монтира в низ, и каждый отвечает каждому, то довольно сложно понять кто кому отвечает :)
P.S. Можно ведь устроить голосовалку..
Особенно с мобильника...
Я со своего треды больше 30 сообщений даже не рискую открывать.
раз тема пошла, выскажусь: очень неудобен формат сообщение с вложенными комментариями.. Намного удобнее, когда сообщения добавляются к последнему, хоть знаешь где искать. Как вариант, реализовать примерно как на ютубе - все сообщения идут подряд, но когда кто то кому то отвечает, выводить ссылку "это ответ на сообщение #23433" при нажатии на которую появляется то сообщение, на которое ответили.. ну сейчас так и есть в этом плане =)
Это все ИМХО, конечно. Лично мне теперешний формат сообщений очень неудобен. Когда их 10-20 - еще ничего, но когда много - нечитаемо.
Необходимо ли изменять структуру отображения тредов на форуме?
Ютубовский вариант ужасен!!! И совершенно не читабелен. Кто, кому, на что ответил - хрен поймёшь.
А вам могу посоветовать читать ветками, чтобы не утратить нить беседы. Собственно, для того древовидная структура и придумана. Дочитали ветку, свернули, читаем следующую. Всё просто.
например, когда я вхожу на трекер, я вижу: "новых ответов: 129" - для того, чтобы мне прочесть ВСЕ ответы, мне надо пролистать ВСЕ сообщения, ибо, ответы были на N количество разных сообщений. Удобно?) мне нет
Инкрементирую в той части, что мне тоже не хватает кнопок "к предыдущему/следующему непрочитанному сообщению".
вот это было бы очень удобно. а то отматывать и искать каждое новое сообщение по красным кружочкам не совсем весело и быстро.
Добавить кнопку "скрыть прочитанное"
в общем да, когда тред разрастается, не всегда понятно, на какой пост был ответ.
Иногда даже логика не спасает. :-(
Я навожу мышкой на край коммента и мотаю вверх. Лучше запилить вертикальные полосы имхо.
О! поступаю аналогично =)
Это мне еще мышку со смартом носить... О_о
Вести пальцем строго по вертикали ;)
И я так же делаю :)
Так же, другого варианта то нет)
Было бы не плохо так сделать. Только тогда нужно ещё решить что делать с разбиением темы на страницы. Если его убрать то треды с количеством сообщений более 100 будут страшно смотреться и долго грузится (особенно типа таких, в которых уйма картинок и прочего)
ну почему-же? На хабре треды монолитны, без разбиения на страницы, а "отметки" появляются при наведении на пост курсором.
Хорошо. Надо будет подумать как такое сделать. И что все же будет удобней в нашем случае, вертикальные линии или точки. Вероятней всего это jQuery пилить придется, в котором я не очень силен, но думаю, разберусь. Если кто-то может помочь - вэлкам.
Мне думается точки эстетичней будут.
Не нужен jQuery, можно обойтись CSS. Но точки - УГ, не помогают они. Лучше всё-таки линии и чтобы, в отличии от точек, отображались всегда.
не бог в JQ, но если что, могу попробовать внести лепту.
Кто мы?
Русские!
Что это значит?
Отупевшие и перепиленные западом славяне!
Вопрос:
Какой образ мысли лучший во вселенной? (в вопросе есть ответ)
Образный!
Ответ:
Запилить так, чтобы было понятно, что куда цитируется и кто кому отвечает.
Короче попа... :) Матом не ругаемся, да :)
...Короче, запихиваю себе в подсознание задачу: придумать систему иерархии комменов, чтобы избежать каши.
P.S:
Админ, тебя мало, но ты в тельняжке! Все получится, просто верь в это!
наркоман штоле?
А может лучше сворачиваемые ветки?
Не улучшит читаемость разветвлённых деревьев, но тоже удобно.
почему не улучшит? в ЖЖ вполне все читаемо.
Вот уж нет. В ЖЖ оно ещё и свёрнуто почти всё. УГ.
а тебе как надо? как на лоре, чтобы вообще ничего не понимать?
На ЛОРе простыня: совсем другое устройство форума. Я так тоже не хочу :)
Пускай можно будет сворачивать треды, но по умолчанию пускай они будут все развёрнуты.
А мне кажется, как раз телефоно-планшетникам удобнее будет, свернуть кучу фигни и всё, а десктопникам сворачиванием быстрее определить к чему всё было...(ну и тоже свернуть кучу фигни)
Хабр не светоч юзабилити. Лично мне его точки всегда были непонятны.
Лучше спросить себя: чего Я хочу? Вероятно, ответ: видеть на чей коммент этот ответ и не терять нити беседы.
Решается в лоб надписью "ответ %username%", можно с номером камента. А можно ещё эту надпись сделать ссылкой на отвечаемый камент, благо все каменты имеют якоря.
Нелишним будет, как предложила Жюстина, сворачивать ветки или тело сообщения.
Посмотрел счас код - делается левой пяткой.
Для сворачивания только тела комента достаточно добавить:
$(document).ready(function() {
$(".csubmitted").click(function() {
$(this).next(".content").slideToggle(100);
});
});
Для сворачивания ветки:
$(document).ready(function() {
$(".csubmitted").click(function() {
$(this).parent().next(".indented").slideToggle(100);
});
});
- но тут надо юзабилити ещё допилить, чтобы видно было, что ветка свёрнута.
Еще вариант:
При наведении или клике на надпись "ответ %username%" показывать всплывающее окошко (div) с текстом камента. Тоже делается на jQuery, но уже в три левыхъ пятки и в одну правую.
Больше мыслей и идей! Хороший и разных! :)
Хабр не светоч - факт. Но в нем больше юзабельность, с его точками, чем наведи мышкой и крути в низ :)
Ваша идея очень хорошая. Ну и в диалоге\споре рождается истина
За три года что был на хабре, так и не понял смысл точек.
Там ещё и крутить чего-то куда-то надо было >< 0о
Да в жопу такое юзабилити!
Кто-то выше правильно написал, удобнее, чтобы при наведении всплывал текст с комментом, на который был ответ.
Кстати с хабра удалился в этом году нафиг, ибо нефиг зря время тратить.
как-то не ясна мне ваша агрессия к моему посту\ко мне(но это мало вероятно). Или это не агрессия, а мое воображение?
А при чём тут Вы?
Я написал что на хабре был сделан не понятный и неудобный способ информирования кто на что ответил.
Посмотрите как это сделано на ютубе.
Спасибо, не нада как на ютубе. Учитывая политику гугла в вопросе пользователей - лесом, и в болото - причем не закопать, а утопить, живьем.
так мы сюда приведем толпу гуглокодеров и заставим их делать - так как надо нам\так как они делали у себя? Или же силами сообщества будем делать?
Самое простое в сложившейся ситуации - оставить как есть. Либо устроить голосование.
Я вот не понимаю критику людей в виде "это все хреново, лучше так не делать", но своего не предлагающие. Если критикуете, так будьте добры выставить свой вариант на показ. Иначе лучше промолчать.
Когда я могу - я помогаю.
Мне НЕ НРАВИТСЯ, как на ютубе.
Интересно, здесь обсуждение, или как?
Решать, как это будет ли меняться, и как именно будет меняться, все равно будет dm, а не я, или вы.
При этом никто не мешает приводить удачные или не очень примеры и высказывать свои мысли на этот счет. В конечном итоге постараюсь сделать что бы было удобно. Хотя давно знаю, что всем угодить все равно не получится.
А я как раз и высказал мысли на этот счет.
Ибо часто путаешься, куда, кто и кому ответил.
Правда, конечно подсказали, теперь как смотреть ответы... :-)
Вам не нравится как на ютубе, ну а как вам нравится?
Откуда, многоуважаемому, dm'y знать: как Вам нравится?
--
Именно это я и имел ввиду, говоря, что вы говорите, что вам не нравится так как предлагают, но и не предлагаете своего варианта.
У меня нет конкретного предложения как изменить треды, чтоб было хорошо.
Но у меня есть мнение, как не хотелось бы, чтоб выглядело. Один из примеров, как не хотелось бы, и есть ютуб. (ну не нравится мне тот способ организации бардака, не нравится)
В конце концов, может быть у меня мнение, как мне НЕ нравится, и при этом не быть мнения, как именно мне нравится?
Возможно, что это Вам и не понять, но у меня именно так сложилось...
Вероятнее всего, это связано с тем, что я не сталкивался с идеальным (разумеется, для меня) "тредообразованием" (с) наверное я :-)
После некоторых экспериментов, решил делать примерно по этой схеме, то есть сворачиваемые ветки и сворачиваемое обсуждение с показом коммента на который идет ответ. Но вот уже несколько дней не могу понять, как зафиксировать комментарий что бы он не уезжал за границы экрана при анимации (.slideToggle). То есть что бы комментарий на который мы хотим увидеть ответ оставался в той же части экрана что и был до сворачивания ветки а не перемещался при анимации. Если кто знает как это можно сделать, прошу подсказать. Если надо, могу выложить что я там накодил.
P.S. Еще вот не знаю, делать border-radius у комментариев (закругленные углы) или так как есть оставить?
Скриншотик с круглыми углами бы. Чтобы понимать, как оно выглядит. Хотя, если как на скриншотах ханумана веткой ниже - то вполне ок.
В место скриншота на сайте поменял. Пока сам не пойму как лучше, с острыми углами или с закругленными.
забавно =)
На мой взгляд с закругленными краями посимпатичней.
Ага, согласен. Не только посимпатичней, но и, как бы сказать, мягенько))
Выкладывай, будем посмотреть. Хотя, я там выше выложил кусочки кода - они вполне рабочие. Проверял на локальной версии страницы.
Вот, это та часть кода, которая сворачивает ветки комментариев позволяя увидеть на какой комментарий был дан ответ. Все работает, но при сворачивании комментарий уезжает вверх, а мне хочется, что бы он оставался на месте а все остальное смещалось относительно него, как такое сделать пока никак не могу понять.
$(document).ready(function() {
$("div.indented div.comment div.csubmitted").append(" <a class='otvet' href='#'>Ответ на комментарий ...</a>");
$("a.otvet").click(function() {
var this_comment = $(this).parent(".csubmitted").parent(".comment");
$(this).parent(".csubmitted").parent(".comment").parent(".indented").find(".comment").not(this_comment).slideToggle();
$(this).toggleClass("closed");
$(this).text($(this).hasClass('closed') ? "Развернуть ветку" : "Ответ на комментарий ...");
return false;
});
});
Если я правильно понял, то проблем в том, что jQuery сворачивает снизу вверх, а не сверху вниз.
Можно проскроллить документ вниз на то количество пикселей, на которое уехал коммент вверх.
То есть вызнать
.scrollTop().offset() до сворачивания и.scrollTop().offset() после, а потом прокрутить документ. Анимация будет забавной ;)Можно заранее вычислять количество пикселей требуемых для скролла, но геморность этого метода вызывает сомнения в целесообразности его применения.
PS <a class='otvet' href='#'> можно смело менять на <span class='otvet'>
всё равно без скрипта <а> не отработает. И return false; не потребуется.
Про scrollTop тоже думал, но как то это костыльно получается и с анимацией действительно как то странновато. Но если других вариантов нет, то пускай будет так. Просто у меня нет большого опыта работы с jquery потому предполагал, что у меня просто знаний маловато для безкостыльной реализации подобного.
PS <a class='otvet' href='#'> можно смело менять на <span class='otvet'>
всё равно без скрипта <а> не отработает. И return false; не потребуется.
Спасибо за замечание, но я это знаю, просто сделал ссылкой что бы стили дополнительные не писать а выглядело все нормально. Там еще конечно надо будет все доработать в конечном варианте.
Можно сделать всю анимацию только через .animate(), но это тоже не гарантирует синхронности.
Тэкс, вот изменённый код.
$(document).ready(function() {
$("div.indented div.comment div.csubmitted").append(" <a class='otvet' href='#'>Ответ на комментарий ...</a>");
$("a.otvet").click(function() {
var this_offset = $(this).parent(".csubmitted").parent(".comment").offset().top
var parent_offset = $(this).parent(".csubmitted").parent(".comment").parent(".indented").offset().top
var curr_scroll = $(document).scrollTop();
var diff = curr_scroll - (this_offset - parent_offset)
if ( $(this).hasClass('closed') )
{
$("html,body").animate({scrollTop: +$(this).attr("title")+diff});
$(this).removeAttr("title")
}
else
{
$("html,body").animate({scrollTop: diff});
$(this).attr("title", (this_offset - parent_offset))
}
var this_comment = $(this).parent(".csubmitted").parent(".comment");
$(this).parent(".csubmitted").parent(".comment").parent(".indented").find(".comment").not(this_comment).slideToggle();
$(this).toggleClass("closed");
$(this).text($(this).hasClass('closed') ? "Развернуть ветку" : "Ответ на комментарий ...");
return false;
});
});
Немножко наколенно, но работает =)
Спасибо за код, сейчас попробую.
Как там дела? Может врубим уже? Если что, откатишь назад.
Да там баги повылезали, а с моим знанием jquery все очень медленно происходит. А с багами как то не хочется выкладывать. Может сегодня еще посижу попробую все доделать.
Если что, вот хорошие уроки по жКвери: http://anton.shevchuk.name/javascript/jquery-for-beginners-effects/
Ну и мне свисти, если надо.
Да, я видел эти уроки. За предложенную помощь спасибо, но надеюсь что сам осилю.
Да, про несколько страниц комментариев я как то подзабыл. Будем исправлять.
Безусловно круть и удобно, но при условии, что комментарий, который показывается, короткий и его не приходиться скроллить вверх, чтобы прочитать сначала. Или я что то не так понял?
не надо скроллить. наводишь курсором на надпись "в ответ на..." в заголовке сообщения и автоматически над ним появляется сообщение на которое этот ответ был дан
При наведении (или клик) - ПОДСВЕТКА ФОНА:
(Т. е. при наведении курсора на сам "коммент-ответ" , или на надпись "в ответ на..." в заголовке сообщения, или на ... и т. д.)
Отлично!
Но я бы предпочёл, чтобы новое положение удерживалось без необходимости снайперского владения мышью. :) Особенно при скроллинге...
Переделал под клик мышки. Возможно, что так действительно удобнее читать.
Супер! Теперь получился прям форум моей мечты! :)
Вот она, сила, опенсорса =)
А я думал сила знания jquery и голова на плечах... -___-
И сразу багрепорт!
1. После отправки ответа на сообщение, всё ломается: каждое новое наведение на "в ответ на..." прокручивает страницу к началу и инициирует создание новых ссылок "в ответ на...". В результате количество "в ответ на..." в шапках постов плодится и множится.
2. При прокручивании страницы полно ложных срабатываний, так-как курсор то и дело оказывается над "в ответ на...". Думаю, имеет смысл сделать сворачивание всё-таки по клику.
обновление страницы помогает
Ага, сообщения через AJAX шлются специально, чтоб люди почаще страницы рефрешели. :)
А так и закрыть глаза - тоже помогает. Закрыл глаза - глюка нет - проблема решена. :)
Исправил
Довольно удобно. Только предлагаю при наведении мышью на "В ответ на..." делать курсор "Пальчиком", а то я, если бы не посмотрел эту тему, то не додумался бы. Да и саму надпись выделать было бы не плохо.
А можно вообще сделать, не при наведении, а при щелчке, но уже больше придирки))
Переделал
во, теперь то что надо :)
Теперь вообще супер!
Ещё маленькая ошибочка. Решил проверить, как оно будет работать в темах с несколькими страницами. На первой странице всё работает, а если перейти на вторую/третью/n'ную, то надпись "в ответ на..." пропадает.
Тоже стало интересно: а как "в ответ на..." поведёт себя в случает, если одна ветка комментариев будет разделена на 2 страницы, то есть если комментарий, на который был дан ответ, будет находиться на другой старнице? Если такое вообще может быть.
Исправил. С остальным пока нет мыслей как сделать.
Заметил "ачепятку" при клике на "в ответ на..." на этом месте появляется "развернуть", но пост на который отвечают и так развернут, наверно лучше будет "свернуть".
Да,лучше будет "свернуть", или "развёрнуто" (слово "развернуть" - точно не подходит :-)
Без сомнения, теперь это наверное самая удобная модель работы с комментариями, которое я где-либо встречал! Спасибо за работу.
Есть пожелание. Если возможно, сделать сворачивание комментариев анимированное. Тогда вопросы типа "как это работает" отпадут сами собой.
Соглашусь... удобнее не видел
Очень удобно, функционально, dm спасибо за проделанную работу!
чисто справедливости ради - XaHyMaH-у ничуть не меньшее спасибо за сотрудничество и консультирование в коде.
Безусловно. Спасибо всем кто помогал. В том числе и GVA за идею.
Помимо хороший людей на форуме,теперь и сам функционал форума стал очень приятный.Классно стало,комфортно,dm спасибо!!! :)
Есть еще вариант вложенности комментариев, как например тут. А дальше можно улучшить восприятие сделав четные комментарии одним цветом, а нечетные другим. Плюс, как уже говорилось, всплывающее окно родительского комментария.
А вот это мысль!
Но надо будет перепиливать либо скрипт, либо шаблоны каментов.Хотя, вот, поправил в онлайне стили:
Справа уродство получается, но мне нра.
Справа границу можно сплющить в одну линию:
А при желании можно вообще оставить границу только слева.
Кстати да, интересное предложение, есть над чем подумать.
Надумаете менять, вы знаете где меня найти ;)
Как мне кажется, это наиболее симпатичное решение, практически не меняющее привычный вид. :-)
экспериментально бы это еще подрубить, посмотреть, как это будет выглядеть на ЖЫЫЫРных трэдах. А то что-то гложат меня смутные сомнения...
а мне не нравится. лучше точки или линии..
Еще не плохо было бы запилить колобков каких нибудь.
имхо:
пингвинчиков
Но текстовые смайлы такие... консольные (^_^) ;-) XD
=)
:): - Смайл Шрёдингера
/\(::)/\ - паук
(.)(.) - вах!
Годные смайлы,особенно последний.
:):
тема, квантовую физику проходил) забыл правда уже все
(\__/)
(O.o )
(> < )
Про смайлы тут уже были обсуждения, в поиске должно быть. Мое ИМХО ни к чему они.
Лучше сделать голосование,без смайлов на мой взгляд немного скучновато,даже эмоции выразить не чем.А если сделать вот так
а потом еще и так
то уже как-то по другому себя чувствуешь.Если форум будет со смайлами,от этого что хуже станет что-ли? Мне кажется будет только лучше.
я против смайлов. без них мне кажется намного лучше. везде понапихают одно и тоже. дайте хоть здесь отдохнуть от этого безумия.
согласен. делать из форума новогоднюю елку - моветон.
Обратите внимание на то, как выглядит текст в вашем сообщении. А теперь сами себе и ответьте стало-ли хуже.
Не буду спорить,я всего лишь высказал свое мнение,может быть будет и хуже а может и лучше.......
Придумал гениальную идею! :)
Итак, нужно добавить возможность сворачивать ветки. Ветки сворачиваются снизу: дочитал до конца, нажал кнопку и ветка свернулась, дав возможность видеть родительский комментарий и соседние ветки.
По-умолчанию все ветки развёрнуты. После сворачивания, на месте ветки остаётся маленькая кнопочка "развернуть".
В результате точки с хабра не нужны, линии и вложенные комментарии не нужны. Древовидная структура обсуждения остаётся наглядной и удобочитаемой при любой разветвлённости.
Было бы идеально запоминать состояние свёрнутости, чтобы возвратившись в тему, пользователь увидел развёрнутыми только те ветки, в которых имеются новые сообщения.
Это всё делается тремя строчками на JS \m/ \m/
предлагаю dm'у устроить голосование с вариантами которые понравились Ему. А Мы веберм из этих вариантов. Как такая идея?
Обиженных и недовольных не будет\сведется к минимуму, т.к. решали все xD
Однако, столько плюсов я не видел ни в одной теме. :) Плюсану на всякий случай и первый пост за пинок в нужном направлении. :)
Топик добра же. Обычно они недолговечны :D
ну Топик Добра принес добро, попутно захватив с собой Полезность. Так что миссия Топика выполнена! Всем огромное спасибо за труд. Стало архиудобно и отпала нужда крутить-вертеть :)
Аааааааааа,
двачуюголосую за кнопочку, хоть на jquery, хоть на javascript с надписью: "К следующему непрочитанному сообщению", с рисунком из красной стрелочки вниз, и нормальным функционалом... Брр.. или я не туды со своим сообщением? О_оВ общем тяжко искать непрочитанные сообщения, особенно когда они разбросаны по всему треду так сказать...
Возможно и не туды. Но эта мысль витает в воздухе потому кочует из темы в тему, от пользователя к пользователю...
Потому что, всё же, новые сообщения трудно найти.
Это конечно было бы удобно. Попробую еще разок что ни будь придумать как это реализовать.
Болтающуюся кнопачгу в правом верхнем углу?
При нажатии на которую тебя опускает/поднимает к новому сообщению?
У нового же сообщения есть какой-нибудь параметр "New comment", и даже восклицательный знак! Вот пусть к нему и скачет....
Но да, думать - это верно!
В смысле мы все сжали кулачки и ждём, и надеемся!
Ммм. Может лучше кнопачку, которая сворачивает все прочитанные в заголовок?
И/или стилю "comment-new" добавить красный бордюр или красный аутлайн или красный box-shadow
со сворачиванием может неудобно быть. захочется прочитать предыдущие ответы к сообщению, а их надо разворачивать. можно конечно сделать чтобы всё развернуть, а-то по-одному если то точно не нужно.
фон у нового сообщения идея хорошая, но кнопка была бы лучше. или вообще и то и другое. но это уже как получится сделать.
Не, хочется именно прыгать :)
Да-да-дад!
Именно прыгать 8)
Представь если в треде оver 150 сообщений. Я сейчас пролистываю их, и ищу если они не по порядку новые, а тут-и-там появившиеся комментарии.
А если с телефона? Аааааа, бедный тачскрин...
А так на кнопку бац - и вот он, заветный комментарий... !
Вот единственная проблема - это когда начинается многостраничность..... Как прыгать на другую страницу...
В общем думать и думать...
Сообщение может быть и, скорее всего, будет, не одно.
Ну так к новым и прыгать.... Поочереди.
Добавил ссылку "к следующему новому" которая будет появляться там же где "ответить" у новых комментариев. При нажатии будет переходить к следующему непрочитанному комментарию. Так же туда же перенес "в ответ на...".
Я нахожусь на первой странице, читаю новый комментарий. На второй странице меня ждут ещё два непрочитанных комментария. Если я нажму "к следующему новому", что получу?
Пока получится перескочить на новые комментарии только в пределах одной страницы.
Дима, когда отвечаешь на комментарий, который был помечен как новый, кнопки "в ответ на..." начинают утраиваться. Причем, ВНЕЗАПНО, у всех комментов, которые помечены как новые.
Ок. Посмотрю.
Upd. Вроде как исправил.
о, симпатичненько, как по мне существенно понятнее. :-)
с переходом на вторую страницу - да, есть проблема.
Есть у меня такая привычка открывать тему, в которой помечено новое, не всегда помнишь знаешь, сколько там страниц... :-(
А там и без перехода проблемы есть. Например, начинают плодиться кнопки "в ответ на..." в неимоверном количестве.
О! Появилась гениальная идея! Что если убрать разбивку на страницы, но сделать содержимое страницы динамически подгружаемым по мере прокрутки? Это уменьшит количество сложных проблем на одну. :)
и всё-таки "в ответ на..." не работает.
На комменте выше работает.
Но перестало после того, как отправил этот коммент :)
Нужны подробности. Браузер, всегда не работает или эпизодически, на каких комментариях не работает и т.д. Так как у меня всё работает как надо.
Судя по всему, после отпраки коммента что-то ломается и "в ответ на..." перестаёт работать.
Понял. Сейчас буду исправлять.
UPD. Исправил.
нажимаю "в ответ на..." под твоим комментарием. сворачивается всё правильно. нажимаю на любой другой - не работает. браузер ФФ что на кубунте что на семерке одинаково.
сейчас вроде заработало
"ПОДСВЕТКА":
"коммента-родителя" тоже может наглядно показывать на какой коммент сделан ответ.
Отправить комментарий