спойлер

Статус
В этой теме нельзя размещать новые ответы.

Sachek

Умелый
Регистрация
23 Мар 2009
Сообщения
398
Реакции
120
Помогите пожалуйста написать "Спойлер" для сайта.
Думаю понятны требования:
Скрытие и открытие текста.
Желательно, что бы подгружалось не со сторонней страницы, а именно с той, которую загрузили...
Ярким примером может быть любой торрент. Там есть возможность скрыть текст под спойлер.
Скрипт желательно на php, но можно и java скрипты.
Заранее спасибо.:)
 
java script нужен по любому.
Именно он определяет логику скрытия/показа спойлера.

Что значит "Желательно, что бы подгружалось не со сторонней страницы"?
Текст спойлера и так уже загружен, но имеет атрибут "скрытый".
Посмотри на большинстве форумах спойлеры, и глянь в исходный код страницы. Текст спойлера обычно уже присутствует.
Не прогруженны только картинки, умные браузеры не грузят их пока они невидны.

Если это не подходит и нужно прятать в спойлерах мегабайтные куски текста, которые не грузятся пока спойлер не открыть, то тут без аякса не обойтись. Интеграция в существующий форум будет сложной.


---------------------
спойлер:


 
HTML:
<script type="text/javascript">
function p() {
	if (document.getElementById('p').style.display == 'none') {
		document.getElementById('p').style.display = 'block';
	} else {
		document.getElementById('p').style.display = 'none';
	}
}
</script>

<a href="#" onclick='p()'>показать\скрыть</a><br/>

<div id="p" style="display:none;background-color:#F2F2F2;">
Скрытый текст
</div>
 
короче, и более многовариантно:
HTML:
<script type="text/javascript">
function p(elem)
{
while(elem.tagName!='DIV')
	elem=elem.nextSibling;
elem.style.display=elem.style.display=='none'?'':'none';
}
</script>
<a href="#" onclick='p(this);return false;'>показать\скрыть</a><br/>
<div style="display:none;background-color:#F2F2F2;">
Скрытый текст
</div>
скрывает/показывает следующий тег DIV после ссылки
также не добавляет # в конец адресной строки
 
alexz15, Alternator:
здесь раздел php. ТС тоже про php спрашивал
показали бы лучше как оптимальнее парсить теги

Решение 1. конструкция:
PHP:
    $s = preg_replace("/\[spoiler\](.+?)\[\/spoiler\]/i",
    "<div class=\"spoiler_wrap\"><div class=\"spoiler_head folded clickable\">Скрытый текст</div><div class=\"spoiler_body\">\\1</div></div>", $s);
не понимает вложенность.

Решение 2. она же в цикле
в конечном - вложенность ограничена
в бесконечном - возможно зацикливание


Решение 3. как в моем примере выше. встречается в phpbb
потенциально опасна не закрытыми тегами,
решается применением tidy либо ручной проверкой валидности html.

Что еще ?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху