Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 22.08.2008, 00:23
Интересующийся
Отправить личное сообщение для M.C. Посмотреть профиль Найти все сообщения от M.C.
 
Регистрация: 12.08.2008
Сообщений: 10

спасибо! под таблицы теперь уже не принципиально
Ответить с цитированием
  #22 (permalink)  
Старый 08.09.2008, 13:51
Lelik
 
Сообщений: n/a

[quote=M.C.;4541]Андрей, пытаюсь сделать как тут: http://anton.shevchuk.name/wp-demo/j...ccordion1.html
там справа есть иконка, когда закрыто, она показывает вниз, когда открыто - наверх (это один gif-рисунок, просто он стилями меняет свое положение)

вот как я представил код скрипта:
// Обворачиваем функцию toggle в локальное замыкание:
        var toggle = function() {
            // Ссылка на текущий открытый div:
            var currentDiv = null;
            // Ссылка на текущий класс:
            var currentClass = null;
 
            // Функция для "раскрытия" элемента:
            function open(divElement, classElement) {
            	// Запоминаем и прячем класс:
            	currentClass = classElement;
            	currentClass = document.getElementByClass("bg_headers");
                // Тут можно добавить эффект "плавного" открытия:
                divElement.style.display = "block";
                currentDiv = divElement;
            }
 
            // Функция для "закрытия" элемента:
            function close(divElement, classElement) {
            	// Показываем класс и "забываем":
                currentClass = document.getElementbyClass("bg_headers_active");
                currentAnchor = null;

                // Тут можно добавить эффект "плавного" закрытия:
                divElement.style.display = "none";
                currentDiv = null;
            }
 
            // Возвращаем функцию, которая будет вызываться по toggle()
            return function(divID, classID) {
                // Получаем элемент из DOM
                var divElement = document.getElementById(divID);
                var classElement = document.getElementByClass(classID)
                // Если такой есть:
                if (divElement) {
                    // Если уже открыт этот div, то просто закрываем.
                    if (divElement === currentDiv) {
                        close(currentDiv, currentClass);
                    // Если открыт другой div, то закрываем и открываем текущий:
                    } else if(currentDiv != null) {
                        close(currentDiv, currentClass);
                        open(divElement, classElement);
                    // Иначе - просто открываем:
                    } else {
                        open(divElement, classElement);
                    }
                }
            }
        // Вызываем нашу "обертку", теперь toggle() вызывает функцию, описанную по "return"
        }();


вот что у меня в CSS:

.bg_headers {
	background: #e9e7e7 url(../images/icons/arrow-square.gif) no-repeat right -51px;
	border: solid 1px #c4c4c4;
	padding: 3px;
}
.bg_headers:hover {
	background-color: #e3e2e2;
}
.bg_headers_active {
	background-position: right 5px;
}


но что-то не работает [/QUOT]

А вы уверены что есть такой метод - document.getElementByClass("bg_headers"); Даже если есть (у меня правда никогда не работало) то возврашает он коллекцию объектов а значит при обращении надо указывать еще индекс в коллекции document.getElementByClass("bg_headers")[0];
Ответить с цитированием
  #23 (permalink)  
Старый 15.09.2008, 10:14
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

сделай это массивом всё
типо array(divID1, divID1, ....)
а потом в коде переворку циклом фор делай
Ответить с цитированием
  #24 (permalink)  
Старый 16.09.2008, 22:01
Леха
 
Сообщений: n/a

а как можно сделать hide, только чтоб блок открывался медленно...
Ответить с цитированием
  #25 (permalink)  
Старый 16.09.2008, 22:02
Леха
 
Сообщений: n/a

всмысле плавно...
Ответить с цитированием
  #26 (permalink)  
Старый 16.09.2008, 22:13
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 24.07.2008
Сообщений: 1,271

по таймауту понемногу...
Ответить с цитированием
  #27 (permalink)  
Старый 17.09.2008, 10:18
Леха
 
Сообщений: n/a

А примерчик можно?
Ответить с цитированием
  #28 (permalink)  
Старый 17.09.2008, 10:34
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 24.07.2008
Сообщений: 1,271

можно. гугли...
Ответить с цитированием
  #29 (permalink)  
Старый 17.09.2008, 11:25
Леха
 
Сообщений: n/a

Спасибо.
вот че нашол примерно то что мне надо.
<html><head>
<script type="text/javascript" src="jquery.js"></script>

<SCRIPT type=text/javascript>
function initSpoilers(context)
{
var context = context || 'body';
$('div.spoiler-head', $(context))
.click(function(){
$(this).toggleClass('unfolded');
$(this).next('div.spoiler-body').slideToggle('fast');
})
;
}

$(document).ready(function(){
initSpoilers('body');
});
</SCRIPT>
<link href="spoiler.css" rel="stylesheet" type="text/css" />
</head><body>
<div class="spoiler-wrap"><div class="spoiler-head folded clickable">1</div><div class="spoiler-body">2</div></div>
</body></html>



содержимое css
.spoiler-wrap {
clear: both;
}
.spoiler-body {
display: none;
}
.clickable {
cursor: pointer;
}
.folded {
display: block;
}
.unfolded {
display: block;
}



спринципе все отлично работает, но как сделать чтоп она отъезжала не от клика а от наведения мыши...
Ответить с цитированием
  #30 (permalink)  
Старый 17.09.2008, 11:29
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 24.07.2008
Сообщений: 1,271

так как здесь используется jquery (а я категорически неприемлю фреймворки), то иди в раздел jquery. Или ищи в коде слово click и меняй на что-то типа mouseover (как это реализовано в jquery я не знаю).
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требутся создать сайт для художника, в качестве онлайн-портфолио. kir12 Элементы интерфейса 1 14.05.2008 18:42