Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Раскрывающиеся блоки

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

Nekstati
может оно конфликтует с этим?

Код: Выделить всё

	<script type="text/javascript" src="/js/rokbox/mootools-release-1.11.js"></script>
	<script type="text/javascript" src="/js/rokbox/rokbox.js"></script>
вы когда-то смотрели джаваскриптовую транслитерацию, там тоже была проблема, насколько помню - именно со скриптами.
можно как-то ее здесь обойти?

Добавлено спустя 3 минуты 17 секунд:
тогда вы преобразовали такой код

Код: Выделить всё

		$(this).val(txt.replace(/^(.)|s(.)|-(.)/g, function($1) {return $1.toUpperCase();}));
к этому виду

Код: Выделить всё

		jQuery(this).val(txt.replace(/^(.)|s(.)|-(.)/g, function($1) {return $1.toUpperCase();}));
и все заработало.

может здесь прокатит аналогичный вариант?

Добавлено спустя 1 минуту 44 секунды:
или может можно через мотулс сделать то же самое?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

Ну замените доллар на jQuery, как в прошлый раз.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

уже пробовал - не пашет.
блок исчезает/появляется с перезагрузкой страницы :(

Добавлено спустя 1 минуту 17 секунд:
заработало ))))))))

Добавлено спустя 1 минуту 59 секунд:
чертовщина какая-то, 100 раз пробовал, шаблоны обновлял кэш чистил, на 101 раз получилось )))

Добавлено спустя 1 минуту 14 секунд:
Nekstati
в вашем варианте кода используется значение -1

Код: Выделить всё

	dE('hidden', (readCookie('hidden_block') || -1));
у меня было 1

надо, чтобы блок по умолчанию был открыт, до того как его закроют и выбор сохранится в кукисах.
мне надо убрать минус перед единичкой?[/off]
опытным путем с этим вопросом разобрался.


Добавлено спустя 18 минут 53 секунды:
Nekstati
я вот эту конструкцию (блок без запоминания статуса)

Код: Выделить всё

<a href="" onclick="dE('hidden_24');return false;">
привел к такому виду

Код: Выделить всё

<a href="" onclick="hide_block_24();return false;">...

		<script type="text/javascript">
		// <![CDATA[
			function hide_block_24() {
			jQuery('#hidden_24').slideToggle('fast');
		}
		// ]]>
		</script>
работает, но у меня есть сомнения... может быть можно сделать более компактно?


Добавлено спустя 14 минут 2 секунды:
а с этим вариантом у меня вообще на сраслось ((

Код: Выделить всё

<a href="{postrow.U_POST_AUTHOR}" onmouseover="dE('hidden_{postrow.POST_ID}');return false;" onmouseout="dE('hidden_{postrow.POST_ID}');return false;" ><img ....></a>

	<span id="hidden_{postrow.POST_ID}" style="display: none">
             ....
	</span>
в этом варианте он работает, минипрофили при наведении на аватарку разворачиваются.

но, такая конструкция разворачивает только последний минипрофиль на странице

Код: Выделить всё

<a href="{postrow.U_POST_AUTHOR}" onmouseover="hide_block_info();return false;" onmouseout="hide_block_info();return false;" ><img ... ></a>

	<span id="hidden_{postrow.POST_ID}" style="display: none">
              .....
	</span>

		<script type="text/javascript">
		// <![CDATA[
			function hide_block_info() {
			jQuery('#hidden_{postrow.POST_ID}').slideToggle('fast');
		}
		// ]]>
		</script>
где я ошибся?

Добавлено спустя 1 час 22 минуты 31 секунду:
пришла свежая идея - передать параметр идентификатора

Код: Выделить всё

onmouseover="hide_block_info('hidden_{postrow.POST_ID}');return false;" onmouseout="hide_block_info('hidden_{postrow.POST_ID}');return false;"

Код: Выделить всё

		<script type="text/javascript">
		// <![CDATA[
			function hide_block_info(postID) {
			jQuery('#'+postID).slideToggle('fast');
		}
		// ]]>
теперь работает.
но, при быстром движении мышкой по минипрофилям наблюдается разворачивание/сворачивание, которое выполняется два раза... помогите таки заставить корректно работать анимацию (((
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

FomenkoAndrey писал(а):может быть можно сделать более компактно?

Код: Выделить всё

<a href="" onclick="jQuery('#hidden_24').slideToggle('fast');">
FomenkoAndrey писал(а):при быстром движении мышкой по минипрофилям наблюдается разворачивание/сворачивание
Естественно. Заменяйте onmouseover/onmouseout на onclick (просто) или прикручивайте jQuery HoverIntent (сложно).
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

Nekstati писал(а):Заменяйте onmouseover/onmouseout на onclick
не могу.
надо при наведении мышью.

вроде сделал по инструкции - не работает

Код: Выделить всё

		function hide_block_info(blockID) {
			var config = {    
				over: makeTall,   
				timeout: 500,   
				out: makeShort    
				};
			jQuery('#'+blockID).hoverIntent(config);
		}
Добавлено спустя 2 минуты 33 секунды:
так то же не работает

Код: Выделить всё

		function hide_block_info(blockID) {
			jQuery('#'+blockID).hoverIntent(makeTall, makeShort);
		}
http://cherne.net/brian/resources/jquery.hoverIntent.js
подключил - все равно не работает (((
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

Там надо совсем по-другому. Вот принцип (о подробностях меня, плиз, не спрашивайте, разбирайтесь сами):

Код: Выделить всё

<div class="qwerty">
	Visible content
	<div style="display: none">
		Hidden content
	</div>
</div>
(Этих блоков может быть сколько угодно.)

Код: Выделить всё

	<script type="text/javascript">
		$('.qwerty').hoverIntent(
			function() {$(this).find('div').slideDown('fast')},
			function() {$(this).find('div').slideUp('fast')}
		);
	</script>
(Этот скрипт один и размещается в конце страницы.)
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

понятно. оставлю как есть.
если не играться с открытием/закрытием блока - все работает.
а кто хочет поиграться - ну и пусть наблюдают двоение время от времени - их проблемы.
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

Nekstati, подскажите, в чем может быть проблема:
плавное открытие/закрытие блоков минипрофилей (при наведении на аватары) начинается только после того, как в первый раз они были открыты (происходит скачкообразное разворачивание, без анимации). далее открытие и закрытие происходит плавно.
при открытии другого блока (любой другой другой минипрофиль), ситуация повторяется: первый раз открытие без анимации, далее - этот блок открывается/закрывается плавно.

использую вот такой код

Код: Выделить всё

<a href="{postrow.U_POST_AUTHOR}" onmouseover="jQuery('#hidden_{postrow.POST_ID}').slideToggle('fast');" onmouseout="jQuery('#hidden_{postrow.POST_ID}').slideToggle('fast');" >{postrow.POSTER_AVATAR}</a>
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

Где полный код? А ещё лучше ссылка.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

FomenkoAndrey писал(а):при быстром движении мышкой по минипрофилям наблюдается разворачивание/сворачивание
Вот ещё вариант, без дополнительных скриптов:

Код: Выделить всё

<a href="{postrow.U_POST_AUTHOR}" onmouseover="jQuery('#hidden_{postrow.POST_ID}').stop(true, true).delay(200).slideDown(200);" onmouseout="jQuery('#hidden_{postrow.POST_ID}').stop(true, true).slideUp(200);">{postrow.POSTER_AVATAR}</a>
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

он работает точно так же как и предыдущий.
двойные движения также иногда возникают.

Некстатичка, как по мне, такая работа блоков как сейчас более чем приемлема :)
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

Nekstati
по аналогии сделал скрытие/открытие правил форумов

Код: Выделить всё

<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>
			<div style="float:right;"><a href="" onclick="hide_block_rules(); return false;">Показать / Скрыть</a></div>
		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			<div id="hidden-rules" >{FORUM_RULES}</div>
		<!-- ENDIF -->
		<span class="corners-bottom"><span></span></span></div>
	</div>

	<script type="text/javascript">
		// <![CDATA[
		function hide_block_rules() {
			if (document.getElementById('hidden-rules').style.display == 'none')
				createCookie('hidden_block_rules', 1, '365');
			else
				createCookie('hidden_block_rules', -1, '365');
			jQuery('#hidden-rules').slideToggle('fast');
		}
		dE('hidden-rules', (readCookie('hidden_block_rules') || 1));
		// ]]>
	</script>

<!-- ENDIF -->
сейчас действие над блоком выполняется кликом по ссылке Показать / Скрыть
как сделать, чтобы менялась ссылка в открытом состоянии блока на Скрыть в свернутом Показать?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

Код: Выделить всё

<!-- IF S_FORUM_RULES -->
	<div class="rules">
		<div class="inner"><span class="corners-top"><span></span></span>
			<div style="float:right;"><a href="" id="rules-toggler" onclick="hide_block_rules(); return false;">Скрыть</a></div>
		<!-- IF U_FORUM_RULES -->
			<a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
		<!-- ELSE -->
			<strong>{L_FORUM_RULES}</strong><br />
			<div id="hidden-rules" >{FORUM_RULES}</div>
		<!-- ENDIF -->
		<span class="corners-bottom"><span></span></span></div>
	</div>

	<script type="text/javascript">
		// <![CDATA[
		function hide_block_rules() {
			if (document.getElementById('hidden-rules').style.display == 'none') {
				createCookie('hidden_block_rules', 1, '365');
				document.getElementById('rules-toggler').innerHTML = 'Скрыть';
			}
			else {
				createCookie('hidden_block_rules', -1, '365');
				document.getElementById('rules-toggler').innerHTML = 'Показать';
			}
			jQuery('#hidden-rules').slideToggle('fast');
		}
		var rulesState = readCookie('hidden_block_rules') || 1;
		dE('hidden-rules', rulesState);
		if (rulesState == -1) document.getElementById('rules-toggler').innerHTML = 'Показать';
		// ]]>
	</script>

<!-- ENDIF -->
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 14 лет 3 месяца
Откуда: Украина! Харьков
Благодарил (а): 80 раз
Поблагодарили: 292 раза
Контактная информация:

Re: Раскрывающиеся блоки

Сообщение Alecto »

сегодня заметил
такая конструкция сворачивающегося блока

Код: Выделить всё

		<!-- IF postrow.S_USERID_BANNED --><dd><div class="banned"><strong>{L_CURRENTLY_BANNED}</strong></div></dd><!-- ELSEIF postrow.POSTER_WARNINGS --><dd><div class="warned"><strong>{L_WARNINGS}:</strong> {postrow.POSTER_WARNINGS}</div></dd><!-- ENDIF -->
	<div id="hidden_{postrow.POST_ID}" style="display: none">
		<br />
		<!-- IF postrow.POSTER_POSTS != '' --><dd><strong>{L_POSTS}:</strong> {postrow.POSTER_POSTS}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_JOINED --><dd><strong>{L_JOINED}:</strong> {postrow.POSTER_JOINED}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_FROM --><dd><strong>{L_LOCATION}:</strong> {postrow.POSTER_FROM}</dd><!-- ENDIF -->
		<!-- IF postrow.POSTER_IP --><dd><strong>{L_IP}:</strong> {postrow.POSTER_IP}</dd><!-- ENDIF -->
		<!-- IF postrow.S_PROFILE_FIELD1 -->
			<!-- Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->
			<dd><strong>{postrow.PROFILE_FIELD1_NAME}:</strong> {postrow.PROFILE_FIELD1_VALUE}</dd>
		<!-- ENDIF -->

		<!-- BEGIN custom_fields -->
			<dd><strong>{postrow.custom_fields.PROFILE_FIELD_NAME}:</strong> {postrow.custom_fields.PROFILE_FIELD_VALUE}</dd>
		<!-- END custom_fields -->
		<br />
	</div>
работает во всех браузераз, но в IE выглядит вместо так
Изображение

так - содержимое скрываемого блока съезжает
Изображение

похоже "собака порылась" в обертке div-м тегов dd.
подскажите, как поправить?

Добавлено спустя 27 минут:
если вместо div использовать span - в IE отображается корректно, но первое разворачивается блока происходит без анимации.
Вложения
viewtopic_body.zip
(6.25 КБ) 318 скачиваний
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: Раскрывающиеся блоки

Сообщение Nekstati »

IE — растяжимое понятие, это целое семейство абсолютно разных браузеров. ;) Замените в overall_header.html это

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
на это

Код: Выделить всё

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Проблема останется только в IE7, на который уже в принципе пора и забыть. Только учтите, что если версия форума ниже 3.0.9, может вылезти небольшая проблема в IE8.

Да, тэги <dt><dd>, равно как и <tr><td>, ничем нельзя оборачивать.
Закрыто

Вернуться в «Бета-версии модов для phpBB 3.0.x»