![]() |
Как создать спойлер на Javascript
Занят разработкой сайта, и возникла такая необходимость:
Имеется таблица, в ней в строках написаны названия программ, и надо, чтобы после нажатия на название программы вниз (типа выезжающего списка) открывался спойлер со скриншотом и описанием. Прошу помощи, как это осуществить + желательно, чтобы при открытии html странички в Dreamweaver все спойлеры были развёрнуты, т.к. программ очень много, и так будет быстрее и легче, чем каждую описывать непосредственно в коде Заранее благодарен |
Что то типа такого? здесь
|
Нет, абсолютно нет. после нажатия на название программы вниз (типа выезжающего списка) открывался спойлер !!!!!
|
Dimonka
прошу прощения, а что означает страшное слово спойлер? =) |
mar, респект, я постеснялся спросить :). Лично в моем понимании спойлер это нечто сугубо автомобильное...
|
Prisoner :)
|
В более общем смысле, "спойлеры" - необязательная информация, которая может испортить пользователю впечатление от предстоящей жизни, но которую можно узнать при желании. Например, рассказать человеку краткое содержание фильма/книги == "выдать спойлер".
На форумах же "спойлером" обзывают ту часть отображаемого контента страницы, которую пользователь может открыть по желанию, но которая изначально скрыта как не необходимая. Кстати, по сути своей, выпадающие меню на javascript - тоже спойлеры (их не видно, пока пользователь не захочет). Dimonka, я угадал? :] |
свойство css display&visibility
|
http://www.artlebedev.ru/tools/techn...html/treeview/ По желанию доработать напильником.
|
А ещё есть что-нибудь по этой теме, Может встречались варианты поэкзотичнее
|
Dimonka
А что вас не устраивает в этом варианте? Он прекрасно показывает идею. Дальше уж расширяйте как пожелаете. |
Просто интересно
+ тот пример по умолчанию открыт, а мне надо чтобы он по умолчанию был свёрнут |
Dimonka
просто напишите style="visibility: hidden; display: none;" или как там его.. |
Цитата:
Цитата:
|
Решил не создавать новую тему.
Доброго всем времени суток! Недавно возникла необходимость создания спойлеров, но я это решил так: Код:
<a id="show_1" onclick="document.getElementById('spoiler_1').style.display=''; document.getElementById('show_1').style.display='none';" class="link1">Открыть спойлер</a> Дело вот в чём... Спойлеров довольно много и нужно придумать как закрыть открытый спойлер при открытии другого. Т.е. что бы одновременно могло быть открыто не более одного спойлера. Простите, если вопрос окажется простейшим... Я только html и css знаю. И то, не на профессиональном уровне. Заранее благодарен! |
Цитата:
|
Я в JavaScript - новичок. Покапавшись в интернете, я смог написать работающий вариант:
Код:
<!DOCTYPE html><html><head><title></title></head><body> |
asus a9rp, определите в CSS два класса (например, «Hide» и «Show»), различающихся видимостью. Изначально, при загрузке страницы, присвойте всем спойлерам, какие они у Вас там будут, класс «Hide». Обработку всех спойлеров привяжите к одному и тому же событию. При возникновении события проделайте примерно следующее (пишу на VBScript, переделайте на JavaScript):
Код:
Sub HighlightAnswer(strElement) |
Iska, на данный момент получается вот что (с двумя спойлерами):
Код:
<style type="text/css"> Цитата:
Цитата:
Цитата:
|
asus a9rp, в функции обработки события ориентируйтесь, например, на однозначное определение типа элемента, от которого пришло событие, и их взаимное расположение относительно друг друга: т.е. на то, что первый из связанных тэгов у Вас — тэг «div», следующий за ним — тэг «a», следующий за ним — тэг «span». Таким образом, проверяя тип тэга и используя DOM («.previousSibling»/«.nextSibling»), Вы всегда сможете по полученному в функции обработки события event.srcElement получить доступ к двум другим, связанным с ним, тэгам, что позволит избежать Вам написания однотипного кода при тэгах:
Код:
document.getElementById('close1').className='show'; |
сталкивался с такой проблемой, набросал для вас код
HTML код:
<input id=spoil type=hidden value=0> PHP код:
п.с. не плохо бы сделать тег и для js кода |
Iska, с .nextSibling я что-то не поладил: <div><a></a></div><span></span> - нельзя получить тэг <a>. Если я не напортачил, конечно...
mr.Morgan, увы, я не смог заставить это работать, но за идею с ('#spoil'+o) огромное спасибо! Я придумал несколько другой вариант спойлера в надежде, что всё заработает: HTML код:
<a onclick="s(this.id)" class="show" id="open1">Open1</a> PHP код:
Я нашёл такую штуку: PHP код:
|
Цитата:
Код:
<div> Смотрите, |
Время: 07:10. |
Время: 07:10.
© OSzone.net 2001-