В цитату. А как это сделать с помощью css, установить высоту и автоскролл - ни разу не понятно.
В HTML верх
<style>
.punbb .post-content .quote-box {
max-height:450px;
overflow-y:auto;
}
</style>
Отредактировано Deff (Сб, 17 Мар 2012 20:17:22)
Единый форум поддержки |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер
В цитату. А как это сделать с помощью css, установить высоту и автоскролл - ни разу не понятно.
В HTML верх
<style>
.punbb .post-content .quote-box {
max-height:450px;
overflow-y:auto;
}
</style>
Отредактировано Deff (Сб, 17 Мар 2012 20:17:22)
Caligula
всё ещё актуально? или уже разобрался?
Romych, пока ещё актуально. жду пока RUSSIAN_GOBLIN напишет новый скрипт спойлера.
твой вариант из 231 сообщения я пробовал, однако с ним у меня вообще виснет весь форум. например, открываю тему, где уже имеется спойлер, а тема грузится до бесконечности - "отправка запроса", и даже на главной странице уже ничего нельзя делать. хорошо ещё получилось заново зайти на форум и в админке убрать этот скрипт. я не знаю, но у меня он абсолютно не работает.
Deff, спасибо! Все работает. Доведено до оптимального качества и не нуждается в каких-то дополнениях/доработках/переделках. Странно, что скролл не был до сих пор выделен в отдельную тему. Попробую исправить эту несправедливость.
Лучше и не надо.
Двусмысленно
Двусмысленно
Объясню... У меня стоит Ваш спойлер, в версии RUSSIAN_GOBLINа из поста № 230.
Я протестил скролл не только в цитате, но и в спойлере. Так вот, в спойлере весь текст тоже оказался заскролленым, с прокруткой. Даже окошко оказалось шире. Проверял на большом тексте из скрина выше (правилах форума техподдержки).
Как говорится, от добра добра не ищут. И если что-то работает (а от себя добавлю, что хорошо работает), то переделывать не надо. Пусть так и остается!
Отредактировано Aleks-Maks (Сб, 17 Мар 2012 21:39:04)
Итак, не смотря на болезнь я занялся спойлером. И сделал его альфа-версию
Вобщем остался один мелкий глючок: он не работает между биби-кодов кода, т.е. в этом случае:
[code.]тут какой-то код[/code.]
описаниетут скрытое спойлером
[code.]и тут тоже какой-то код[/code.]
В HTML-верх это:
<style type="text/css"> #button-spoiler_r {background:url('http://img706.imageshack.us/img706/1943/spoiler.gif') no-repeat center !important;} </style> <script type="text/javascript"> FORUM.set('editor.spoiler_r', { name : 'Спойлер', onclick : function() {tag_spolier()} } ); </script>
Если нужнен спойлер с описанием только открытой кнопки, в HTML-низ это:
<script type="text/javascript"> function tag_spolier() {var FoundErrors = ''; var enterTITLE = prompt("Введите описание открытой кнопки", 'Спойлер'); bbcode('[spoiler='+enterTITLE+']','[/spoiler]');} $(function(){ $('input.spoiler-button').live('click',function(){ $(this).parents('div.spoiler-box:first').find('blockquote.quote-box:first').toggle('normal'); var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a); }); }); var num_spl=0, num_spl2=0, post=0; $('div.post-content').each(function (){ text = $(this).html(); post++; if($('div.post-content').length==post-1) return false; num_spl=text.indexOf("[/spoiler]"); num_spl2=num_spl; if(num_spl != -1){ while(num_spl--){ text=text.replace(/<pre>([\s\S]*?)\[spoiler=(.*?)\]([\s\S]*?)\[\/spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[*spoiler=$2]$3[*spoiler]$4</pre>");} text=text.replace(/\[spoiler=(.*?)\]([\s\S]*?)\[\/spoiler\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='Закрыть' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>$2</blockquote></div>"); while(num_spl2--){ text=text.replace(/<pre>([\s\S]*?)\[\*spoiler=(.*?)\]([\s\S]*?)\[\*spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[spoiler=$2]$3[/spoiler]$4</pre>");} $(this).html(text); } }); </script>
Если нужнен спойлер с описанием обеих кнопок, в HTML-низ это:
<script type="text/javascript"> function tag_spolier() {var FoundErrors = ''; var enterTITLE = prompt("Введите описание закрытой кнопки", 'Спойлер'); var enterTITLE2 = prompt("Введите описание открытой кнопки", 'Закрыть'); bbcode('[spoiler='+enterTITLE+'|'+enterTITLE2+']','[/spoiler]');} $(function(){ $('input.spoiler-button').live('click',function(){ $(this).parents('div.spoiler-box').find('blockquote.quote-box').toggle('normal'); var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a); });}); var num_spl=0, num_spl2=0, post=0; $('div.post-content').each(function () { text = $(this).html(); post++; if($('div.post-content').length==post-1) return false; num_spl=text.indexOf("[/spoiler]"); num_spl2=num_spl; if(num_spl != -1){ while(-1+num_spl--){ text=text.replace(/<pre>([\s\S]*?)\[spoiler=(.*?)\|(.*?)\]([\s\S]*?)\[\/spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[*spoiler=$2|$3]$4[*spoiler]$5</pre>");} text=text.replace(/\[spoiler=(.*?)\|(.*?)\]([\s\S]*?)\[\/spoiler\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='$2' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>$3</blockquote></div>"); while(num_spl2--){ text=text.replace(/<pre>([\s\S]*?)\[\*spoiler=(.*?)\|(.*?)\]([\s\S]*?)\[\*spoiler\]([\s\S]*?)<\/pre>/gim,"<pre>$1[spoiler=$2|$3]$4[/spoiler]$5</pre>");} $(this).html(text); } }); </script>
Romych и Deff, посмотрите на код и оцените безумную идею, благодаря которой, спойлер работает почти как надо
RUSSIAN_GOBLIN
А вложенность работает ? Как у меня в моём спойлере (Или используя код в посте 240 ?
Deff, блин Вложенность не проверял. Сосредоточился только работе вне бб-кода кода и не работе в нутри блока кода.
Но и там не достиг успеха. В текущем варианте остался выбор - или будет работать между блоков кода и в блоке кода будет не рабоать только первый спойлер, или в блоке кода не будут работать любое кол-во спойлеров, но между блоками кода - аут.
Завтра перепишу код
RUSSIAN_GOBLIN
Ти можешь всунуть чисто в новосозданный тег >
<GOBLIN_TAG class(wlogennost_N>Тут что-то </GOBLIN_TAG>
и перепарсить потом в jQuery
Отредактировано Deff (Ср, 21 Мар 2012 20:15:45)
Спасибо Deffу за его вариант спойлера
Спасибо RUSSIAN_GOBLINу за его вариант спойлера
Спасибо Romychу за его вариант спойлера
Тут у каждого программиста есть свой вариант спойлера
Тут у каждого программиста есть свой вариант спойлера
Готов сказать: "Спасибо каждому программисту за его вариант спойлера". А де смотреть? Я все-все-все посмотрю, но деффовский, в итоге оставлю
но деффовский, в итоге оставлю
у меня тоже он стоит.. и на многих форумах, где я сижу, стоит он же, не понимаю, зачем его переделывать?
у меня тоже он стоит.. и на многих форумах, где я сижу, стоит он же, не понимаю, зачем его переделывать?
То RUSSIAN_GOBLIN свой переделывает. От говорил же, от добра добра не ищут. Посмотрел спойлер свеженький RUSSIAN_GOBLINа с поста № 267, так он ваще не работает у мну. Зато двухвариантный с поста № 224 работает как часы.
Как грится, нет предела совершенствованию. Так сказать, творческая неудовлетворенность (шо тоже хорошо )
Финальная версия спойлера:
Это в HTML-верх:
<style type="text/css"> #button-spoiler_r {background:url('http://img706.imageshack.us/img706/1943/spoiler.gif') no-repeat center !important;} </style> <script type="text/javascript"> FORUM.set('editor.spoiler_r', { name : 'Спойлер', onclick : function() {tag_spolier()} } ); function enSpoiler(){ $('div.code-box').each(function (){ codehtml=$(this).html(); code = codehtml.indexOf("[/spoiler]"); if(code==-1) return true; while(code--){$(this).html($(this).html().replace(/\[spoiler/,"[*spoiler").replace(/\[\/spoiler\]/,"[+spoiler]"));} });} function deSpoiler(){ $('div.code-box').each(function (){ codehtml=$(this).html(); code = codehtml.indexOf("[+spoiler]"); if(code==-1) return true; while(code--){$(this).html($(this).html().replace(/\[\*spoiler/,"[spoiler").replace(/\[\+spoiler\]/,"[/spoiler]"));} });} </script>
Если нужен спойлер с описанием только открытой кнопки, в HTML-низ это:
<script type="text/javascript"> var code=0, codehtml='', sptext=''; $(function(){ $('input.spoiler-button').live('click',function(){ $(this).parents('div.spoiler-box:first').find('blockquote.quote-box:first').toggle('normal'); var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a);}); }); function tag_spolier(){var FoundErrors = ''; var enterTITLE = prompt("Введите описание открытой кнопки", 'Спойлер'); if(enterTITLE!=null)bbcode('[spoiler='+enterTITLE+']','[/spoiler]');} function hideSpoiler(){ $('div.post-content').each(function (){ sptext = $(this).html(); if(sptext.indexOf("[/spoiler]")==-1) return true; sptext=sptext.replace(/\[spoiler=(.*?)\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='Закрыть' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>").replace(/\[\/spoiler\]/gim, "</blockquote></div>"); $(this).html(sptext); }); deSpoiler(); } enSpoiler(); hideSpoiler(); </script>
Если нужен спойлер с описанием обеих кнопок, в HTML-низ это:
<script type="text/javascript"> var code=0, codehtml='', sptext=''; $(function(){ $('input.spoiler-button').live('click',function(){ $(this).parents('div.spoiler-box:first').find('blockquote.quote-box:first').toggle('normal'); var a = $(this).attr('value');$(this).attr('value',$(this).attr('id'));$(this).attr('id',a);}); }); function tag_spolier(){var FoundErrors = ''; var enterTITLE = prompt("Введите описание закрытой кнопки", 'Спойлер'); var enterTITLE2 = prompt("Введите описание открытой кнопки", 'Закрыть'); if(enterTITLE!=null)bbcode('[spoiler='+enterTITLE+'|'+enterTITLE2+']','[/spoiler]');} function hideSpoiler(){ $('div.post-content').each(function (){ sptext = $(this).html(); if(sptext.indexOf("[/spoiler]")==-1) return true; sptext=sptext.replace(/\[spoiler=(.*?)\|(.*?)\]/gim, "<div class='spoiler-box' style='padding:1px;background: none;border: 0;'><input id='$2' class='spoiler-button' style='width:auto;font-size:11px; margin:0; cursor: pointer; font-weight:bold' type='button' value='$1'><blockquote class='quote-box' style='display:none; width:auto;margin:0;'>").replace(/\[\/spoiler\]/gim, "</blockquote></div>"); $(this).html(sptext); }); deSpoiler(); } enSpoiler(); hideSpoiler(); </script>
Отредактировано RUSSIAN_GOBLIN (Чт, 22 Мар 2012 21:28:05)
RUSSIAN_GOBLIN, отлично! всё работает без ошибок. старые спойлеры также отображаются без проблем.
Поставил новый спойлер, пропала кнопка "свернутый текст"
http://totenturm.rusff.ru/
Поставил новый спойлер, пропала кнопка "свернутый текст"
Ставить спойлер скриптом больше нет необходимости. Удалите его.
Ставить спойлер скриптом больше нет необходимости. Удалите его.
Жаль ....у меня он красивый был.А этот с плюсиком
Отредактировано ruslan_as (Пт, 23 Мар 2012 10:33:34)
Жаль ....у меня он красивый был.А этот с плюсиком
Надо просто с css повозиться. На самом деле реальнео сделать это так, что бы это выглядело как кнопка над цитатой.
Вы здесь » Единый форум поддержки » Архив » Обновленный спойлер