Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » jQuery » Как сделать надпись внизу спойлера?

Как сделать надпись внизу спойлера?


     Все вопросы » jQuery    2507

вопрос
Здравствуйте. Ищу решение как сделать надпись "закрыть" внизу содержимого спойлера в dle, при нажатии на которую, спойлер естественно закроется.
Раньше где то встречал но уже не вспомню, искал, не нашел..

Ответа пока нет


12 комментариев

FastFud
Юзер

FastFud - -

Я предлагаю так: открыть /engine/classes/js/dle_js.js и найти функцию
function ShowOrHide(a) {
в этой функции после
var c = $("#" + a);
добавить
if ( $('.text_spoiler').height > 100 && $('.text_spoiler').is(':visible') ) {
    $('.title_spoiler').clone().appendTo('.text_spoiler');
} else {
    $('.text_spoiler').find('.title_spoiler').remove();
}
Исходя из теории, должно работать )

Djinn
Юзер

Djinn - -

Спасибо за участие, я был бы рад, но к сожалению так не работает... все осталось как есть без малейших изменений, даже надпись не появилась..

FastFud
Юзер

FastFud - -

Добавьте большой текст и пролистайте в самый низ.

Djinn
Юзер

Djinn - -

Сделал, ничего, все так же..

FastFud
Юзер

FastFud - -

if ( $('.text_spoiler').height() > 20 || $('.text_spoiler').is(':visible') ) {
    $('.title_spoiler').clone().appendTo('.text_spoiler');
} else {
    $('.text_spoiler').find('.title_spoiler').remove();
}
20 = 20px - высота блока (text_spoiler)

Djinn
Юзер

Djinn - -


Код из последнего вашего комментария.
Несколько раз нажал открыть и закрыть, в итоге вот:

FastFud
Юзер

FastFud - -

А если так
if ( $('.text_spoiler').height() > 20 ) {
    $('.text_spoiler').after($('.title_spoiler'));
}

Djinn
Юзер

Djinn - -

Вот так все в порядке, но один минус, надпись "Показать / Скрыть текст", после нажатия остается только внизу..

Минутку, не все в порядке...
Если в новости три спойлера к примеру, то они все дублируются после каждого нажатия, не важно на какой спойлер..

FastFud
Юзер

FastFud - -

if ( $(a).height() > 20 ) {
    $(a).after($(a).find('.title_spoiler'));
}

Djinn
Юзер

Djinn - -

Так опять ничего не работает..

FastFud
Юзер

FastFud - -

if ( $('.text_spoiler').height() > 20 ) {
    $(c).after($(c).prev($('.title_spoiler')));
}

Djinn
Юзер

Djinn - -

Спасибо, но такой вариант тоже не работает.

Похожие вопросы

наверх