JavaScript - Выдвигающееся и сдвигающееся при нажатии "что-то"

12
aliban
На сайте с 11.10.2007
Offline
35
4200

Делаю cms библиотеки. Надо сделать чтобы можно было в одном файле было добавлять разделы, книги и т.д. Нужно чтобы блоки, например, содержащие список книг раздела, выдвигались и сдвигались при нажатии на название раздела. Так как всё будет в один лист, то всё должно так сворачиваться, иначе будет трёхкилометровая страница.

Столкнулся с проблемой. Я не знаю javascript, а тут, видимо, нужен именно он. Учить нет пока времени. Подскажите. Мне надо как на бегуне http://begun.ru выдвигается форма входа, но чтобы у меня так выдвигались целые таблицы, но чтобы они отодвигали вниз то, что под ними.

Если это возможно покажите пример, пожалуйста, кто знает.

Varkolak
На сайте с 03.06.2005
Offline
174
#1

aliban, а вывозьмите код с этого самого бегуна ;)

html/css/js верстка и разработка сайтов на hostcms (хостцмс) - skype: varkolak1, тел: 89675012935, e-mail: anton.yurzanov@gmail.com
aliban
На сайте с 11.10.2007
Offline
35
#2
Varkolak:
aliban, а вывозьмите код с этого самого бегуна ;)

Этим я слабо владею. Пытался для начала css файл скачать - не качается. Появляется пустой файл.

Жаваскрипты там тоже в отдельных файлах по ходу хранятся. Даже не пробовал скачивать. Не разбираюсь я в этом.

Да и в чужих скриптах копаться, это геморойно. Вот что-нибудь готовое бы...

L
На сайте с 08.04.2007
Offline
48
#3

Вот простой как апельсин пример :


<script language="javascript">
function hideandshow(obj)
{
obj.style.display=(obj.style.display==""?"none":"");
}
</script>

<a href="#" onclick="hideandshow(block)">Кнопка</a>
<div id="block" style="display:none">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>содержимое</td>
</tr>
</table>
</div>
<p>Что-то еще</p>

Скрипт меняет свойство стиля display.

Есть много других способов сделать то же самое. Данный способ хорош своей простотой, однако в данном случае придется подгружать контент в скрытые блоки сразу.

Если данных слишком много, можно не грузить сразу все, а применить технологию AJAX и "налету" подгружать необходимые фрагменты.

А если вам вообще что-то готовое надо - не стесняйтесь пользовать Яндекс. Он вам подскажет где лежат целые библиотеки готовых JavaScript

Leevoth добавил 01.02.2008 в 21:42

Глянул на Бегуне ради интереса, там точно так же сделано:


function showLogin(){
// document.getElementById('login').style.display=(document.getElementById('login').style.display != 'block' ? 'block' : 'none');
var agt = navigator.userAgent.toLowerCase();
var is_bsd = (agt.indexOf("bsd") != -1);
var is_x11 = (agt.indexOf("x11") != -1);
var is_linux = (agt.indexOf("linux") != -1);
var is_mac = (agt.indexOf("mac") != -1);
obj = document.getElementById('login').style;
if ( is_bsd || is_x11 || is_linux || is_mac ) {
obj.top = '20px';
}
obj.display = (obj.display != 'block' ? 'block' : 'none');
}
aliban
На сайте с 11.10.2007
Offline
35
#4

Спасибо. Вроде то что надо. предварительно протестил.

С данными проблем думаю не будет. Может php будет долго выполнятся но это уж можно подождать. Отошлём админу длинную страницу, а он уже путь с жаба скриптом раздвигает и сдвигает. Как надумает что-нибудь добавить - опят подождёт.

daykkin
На сайте с 10.04.2007
Offline
100
#5

Leevoth, В вашем примере, при нажатии на кнопку, постоянно скидывает на верх страницы.. Это не удобно, не подскажете что прописать в "href" что бы такого не было?

daykkin добавил 02.02.2008 в 06:17

Проблему решил прописав ссылке name="" и тут же href="" на этот name.. Все равно скрипт к сожалению не работает в FF как таковой..

daykkin добавил 02.02.2008 в 06:40

Покопался в нете, нашел более удобное решение, работает на всех браузерах..

<div class="Ваш стиль" style="padding:0;margin:0;"><a href="javascript:ShowOrHide('nl')" style="padding:0;margin:0;">ЖМИ СЮДА</a></div><em style="font:13px verdana;"><i>*если нажмешь сюда - ТАКОЕ УВИДИШЬ!</i></em><br>

<div id="nl" style="display:none; padding-top: 10px;">
<div>Я КРУТОЙ БЛОК</div>
<div style="text-align:right; padding-top: 10px;">
<strong>А я ещё круче!</strong></div>
</div>
</div>
Hakuna Matata! What a wonderful phrase. Hakuna Matata! Ain't no passing craze. It means no worries for the rest of your days, It's our problem-free, philosophy, Hakuna Matata! :)
Lazy
На сайте с 11.11.2005
Offline
59
#6
daykkin:
Leevoth, В вашем примере, при нажатии на кнопку, постоянно скидывает на верх страницы.. Это не удобно, не подскажете что прописать в "href" что бы такого не было?

<a href="javascript:void(22)"> ... </a>

вместо «22» может быть любое число.

Лучшее - враг хорошего!
aliban
На сайте с 11.10.2007
Offline
35
#7

Сделал по коду который дал leevoth http://www.java-proba.narod.ru Это уже правда готовый обработанный через пхп код. Раскрываются разделы и подразделы.

Код daykkin-а у меня не работает ни на IE ни на мозиле. Сделал, как он написал

Проблему решил прописав ссылке name="" и тут же href="" на этот name
, правда, догадался сам.

Мне ещё кое-что надо, спрошу у Яндекса, но надежд что что-то особо нету.

daykkin
На сайте с 10.04.2007
Offline
100
#8

Как это не работает? Ни порядок, у меня, как ни странно, как раз везде он и работает)

aliban
На сайте с 11.10.2007
Offline
35
#9
daykkin:
Как это не работает? Ни порядок, у меня, как ни странно, как раз везде он и работает)

Я уже и на опере проверил - не работает. Ничего не сдвигается. IE ещё сообщает об активном содержимом при нажатии, мозила и опера вобще не реагируют. Сам по себе этот код не работает у меня.

daykkin
На сайте с 10.04.2007
Offline
100
#10

тогда почему он у меня работает на всех браузерах?) Вы можете привести полный код, который вы размещаете у себя?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий