Добавляем скрытый блок на сайте со ссылкой Развернуть/Свернуть

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

<div id="k2ModuleBox127" class="k2ItemsBlock">
[Здесь находится скрытая информация]
<div>

Изначально он скрыт, т.е. имеет такое свойство:

#k2ModuleBox127 {
    display: none;
}

Добавляем JavaScript следующего содержания:

<a class="ref" href="javascript:void(0)" 
onclick="showHide('k2ModuleBox127')"><span align="left">
<div id="show-rss">Показать rss</div>
</span></a><script>function showHide(element_id) {
                //Если элемент с id-шником element_id существует
                if (document.getElementById(element_id)) { 
                    //Записываем ссылку на элемент в переменную obj
                    var obj = document.getElementById(element_id);	
                    //Если css-свойство display не block, то: 
                    if (obj.style.display != "block") { 
                        obj.style.display = "block"; //Показываем элемент
                            var name_input = document.getElementById('show-rss');
                            name_input.innerText="Скрыть rss";
                    }
                    else  { obj.style.display = "none"; //Скрываем элемент
                            var name_input = document.getElementById('show-rss');
                            name_input.innerText="Показать rss";
                          }
                }
                //Если элемент с id-шником element_id не найден, то выводим сообщение
               // else alert("Элемент с id: " + element_id + " не найден!"); 
            }  
</script>

Что он делает?

Он показывает ссылку Показать rss, при нажатии на которую свойство блока .k2ModuleBox127 изменяется на видимый: obj.style.display != "block"

А сама ссылка при этом заменяется на Скрыть rss.

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

Покажем на примере сайта hram-ua.com.

Например, нам нужно скрыть блок .div k2CategoriesListBlock (см. скриношт, блок выделен красным):

скрываемый блок

Для начала нам нужно добавить убедится, что такой блок один единственный в теле страницы, для этого нажимаем cntrl+F и ищем имя класса: k2CategoriesListBlock.

Убеждаемся, что он один:

блок без повторов

Теперь вставляем наш css и скрипт, с учетом правок:

#k2CategoriesListBlock {
    display: none;
}

Добавляем JavaScript следующего содержания:

<a class="ref" href="javascript:void(0)"
onclick="showHide('k2CategoriesListBlock')">
<span align="left"><div id="show-rss">Показать rss</div></span></a>
<script>            function showHide(element_id) {
                //Если элемент с id-шником element_id существует
                if (document.getElementById(element_id)) { 
                    //Записываем ссылку на элемент в переменную obj
                    var obj = document.getElementById(element_id);
                    //Если css-свойство display не block, то: 
                    if (obj.style.display != "block") { 
                        obj.style.display = "block"; //Показываем элемент
                            var name_input = document.getElementById('show-rss');
                            name_input.innerText="Скрыть rss";
                    }
                    else  { obj.style.display = "none"; //Скрываем элемент
                            var name_input = document.getElementById('show-rss');
                            name_input.innerText="Показать rss";
                          }
                }
                //Если элемент с id-шником element_id не найден, то выводим сообщение
               // else alert("Элемент с id: " + element_id + " не найден!"); 
            }  
</script>

В общем, видим, что все, что нам пришло, это заменит в скрипте k2ModuleBox127 на k2CategoriesListBlock и убедиться, что такой блок один в коде (что кстати и должно быть в правильной верстке: id должен однозначно идентифицировать блок в отличие от class).

Для внедрения на сайт, создаем файл http://hram-ua.com/js_show_hide_links.php

Для проверки можем внедрить в него строки:

<div id="k2CategoriesListBlock" class="k2ItemsBlock">
[Здесь находится скрытая информация]
</div>

Теперь находим главную страницу сайта в движке джумла:

Админ-панель Joomla


Пункты меню Joomla


Редактирование пункта меню Joomla


материалы Joomla


страница материалов joomla


добавление материала в админ-панели joomla

И вставляем строку:

<?php echo file_get_contents("http://hram-ua.com/js_show_hide_links.php");?>

скрытый блок в материале

Теперь чистим кэш:

обслуживание кеша сайта


очистка кеша в joomla

Print Friendly Version of this pagePrint Get a PDF version of this webpagePDF