|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Как создать спойлер на Javascript |
|
Как создать спойлер на Javascript
|
Новый участник Сообщения: 4 |
Занят разработкой сайта, и возникла такая необходимость:
Имеется таблица, в ней в строках написаны названия программ, и надо, чтобы после нажатия на название программы вниз (типа выезжающего списка) открывался спойлер со скриншотом и описанием. Прошу помощи, как это осуществить + желательно, чтобы при открытии html странички в Dreamweaver все спойлеры были развёрнуты, т.к. программ очень много, и так будет быстрее и легче, чем каждую описывать непосредственно в коде Заранее благодарен |
|
Отправлено: 07:39, 28-10-2006 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать Dimonka
А что вас не устраивает в этом варианте? Он прекрасно показывает идею. Дальше уж расширяйте как пожелаете. |
------- Отправлено: 20:31, 02-11-2006 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Просто интересно
+ тот пример по умолчанию открыт, а мне надо чтобы он по умолчанию был свёрнут |
Отправлено: 17:41, 03-11-2006 | #12 |
Старожил Сообщения: 158
|
Профиль | Отправить PM | Цитировать Dimonka
просто напишите style="visibility: hidden; display: none;" или как там его.. |
------- Отправлено: 18:13, 03-11-2006 | #13 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Цитата Dimonka:
Цитата ivank:
![]() |
||
------- Отправлено: 18:16, 03-11-2006 | #14 |
Ветеран Сообщения: 710
|
Профиль | Отправить PM | Цитировать Решил не создавать новую тему.
Доброго всем времени суток! Недавно возникла необходимость создания спойлеров, но я это решил так: <a id="show_1" onclick="document.getElementById('spoiler_1').style.display=''; document.getElementById('show_1').style.display='none';" class="link1">Открыть спойлер</a> <span id="spoiler_1" style="display: none"> <a onclick="document.getElementById('spoiler_1').style.display='none'; document.getElementById('show_1').style.display='';" class="link2">Закрыть спойлер</a> <br>Текст</span><br> ![]() Дело вот в чём... Спойлеров довольно много и нужно придумать как закрыть открытый спойлер при открытии другого. Т.е. что бы одновременно могло быть открыто не более одного спойлера. Простите, если вопрос окажется простейшим... Я только html и css знаю. И то, не на профессиональном уровне. Заранее благодарен! |
Последний раз редактировалось asus a9rp, 20-07-2012 в 23:49. Отправлено: 23:34, 20-07-2012 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата asus a9rp:
|
|
Отправлено: 00:29, 21-07-2012 | #16 |
Ветеран Сообщения: 710
|
Профиль | Отправить PM | Цитировать Я в JavaScript - новичок. Покапавшись в интернете, я смог написать работающий вариант:
<!DOCTYPE html><html><head><title></title></head><body> <a id="open1" onclick=" document.getElementById('close1').style.display=''; document.getElementById('open1').style.display='none'; document.getElementById('open2').style.display=''; document.getElementById('close2').style.display='none'; " class="link1">Open</a><span id="close1" style="display: none"><a onclick=" document.getElementById('close1').style.display='none'; document.getElementById('open1').style.display=''; " class="link2">Close</a><br>TEXT</span><br> <a id="open2" onclick=" document.getElementById('close2').style.display=''; document.getElementById('open2').style.display='none'; document.getElementById('open1').style.display=''; document.getElementById('close1').style.display='none'; " class="link1">Open</a><span id="close2" style="display: none"><a onclick=" document.getElementById('close2').style.display='none'; document.getElementById('open2').style.display=''; " class="link2">Close</a><br>TEXT</span> </body></html> |
Последний раз редактировалось asus a9rp, 21-07-2012 в 23:34. Отправлено: 23:27, 21-07-2012 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать asus a9rp, определите в CSS два класса (например, «Hide» и «Show»), различающихся видимостью. Изначально, при загрузке страницы, присвойте всем спойлерам, какие они у Вас там будут, класс «Hide». Обработку всех спойлеров привяжите к одному и тому же событию. При возникновении события проделайте примерно следующее (пишу на VBScript, переделайте на JavaScript):
Sub HighlightAnswer(strElement) Set objTagDivCollection = document.all.tags("DIV") If Not IsNull(objTagDivCollection) Then For Each objTagElement In objTagDivCollection If objTagElement.className = "Show" Then objTagElement.ClassName = "Hide" End If If objTagElement.id = strElement Then objTagElement.ClassName = "Show" End If Next End If End Sub |
Последний раз редактировалось Iska, 22-07-2012 в 11:46. Причина: Исправлена грамматическая описка: «заключите» → «заключив» Отправлено: 03:53, 22-07-2012 | #18 |
Ветеран Сообщения: 710
|
Профиль | Отправить PM | Цитировать Iska, на данный момент получается вот что (с двумя спойлерами):
<style type="text/css"> .show {display: block;} .hide {display: none;} </style> <script type="text/javascript"> function my(){ divs = document.getElementsByTagName("div"); for( var x=0; x < divs.length; x++ ) { divs[x].className='show'; } spans = document.getElementsByTagName("span"); for( var x=0; x < spans.length; x++ ) { spans[x].className='hide'; } };</script> <div onclick="my(); document.getElementById('close1').className='show'; document.getElementById('open1').className='hide';" class="show" id="open1"> <a class="link1">Open1</a></div> <span onclick="my();" class="hide" id="close1"><a class="link2">Close1</a><br> TEXT1<br></span> <div onclick="my(); document.getElementById('close2').className='show'; document.getElementById('open2').className='hide';" class="show" id="open2"> <a class="link1">Open2</a></div> <span onclick="my();" class="hide" id="close2"><a class="link2">Close2</a><br> TEXT2<br></span> Цитата Iska:
Цитата Iska:
![]() Цитата Iska:
|
|||
Отправлено: 22:44, 26-07-2012 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать asus a9rp, в функции обработки события ориентируйтесь, например, на однозначное определение типа элемента, от которого пришло событие, и их взаимное расположение относительно друг друга: т.е. на то, что первый из связанных тэгов у Вас — тэг «div», следующий за ним — тэг «a», следующий за ним — тэг «span». Таким образом, проверяя тип тэга и используя DOM («.previousSibling»/«.nextSibling»), Вы всегда сможете по полученному в функции обработки события event.srcElement получить доступ к двум другим, связанным с ним, тэгам, что позволит избежать Вам написания однотипного кода при тэгах:
document.getElementById('close1').className='show'; document.getElementById('open1').className='hide'; … document.getElementById('close2').className='show'; document.getElementById('open2').className='hide'; … document.getElementById('closeN').className='show'; document.getElementById('openN').className='hide'; |
Отправлено: 01:02, 27-07-2012 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
как создать телефонный справочник на своем сайте я хочу создать телефонный справочник | re5pect | Вебмастеру | 8 | 14-07-2008 19:45 | |
как убрать окошко блокирующее javascript | Turman | Хочу все знать | 4 | 05-11-2006 21:40 | |
Как прочитать на JavaScript текстовый файл? | Efremov | Вебмастеру | 5 | 11-01-2006 11:27 | |
Как проверить JavaScript'ом наличие Flash??? | Krendebobel | Вебмастеру | 10 | 28-06-2005 16:17 | |
как в JavaScript передать переменную? | Guest | Вебмастеру | 8 | 25-08-2004 13:33 |
|