Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2012, 15:27
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

Продвинутый аккардеон.
Вот есть аккардеон. Хочу чтобы можно было. Не знаю как сделать чтобы можно было перед каждым меню поставить еще и "-" и нажав на него меню удаляется, к примеру нажал напротив Меню1 и оно исчезло и больше не востановить ,только перезагрузка.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Dynamic tabs with jQuery - why and how to create them | JankoAtWarpSpeed Demos</title>

<script type="text/javascript">
var array = new Array();
var speed = 10;
var timer = 10;

// Loop through all the divs in the slider parent div //
// Calculate seach content divs height and set it to a variable //
function slider(target,showfirst) {
  var slider = document.getElementById(target);
  var divs = slider.getElementsByTagName('div');
  var divslength = divs.length;
  for(i = 0; i < divslength; i++) {
    var div = divs[i];
    var divid = div.id;
    if(divid.indexOf("header") != -1) {
      div.onclick = new Function("processClick(this)");
    } else if(divid.indexOf("content") != -1) {
      var section = divid.replace('-content','');
      array.push(section);
      div.maxh = div.offsetHeight;
      if(showfirst == 1 && i == 1) {
        div.style.display = 'block';
      } else {
        div.style.display = 'none';
      }
    }
  }
}

// Process the click - expand the selected content and collapse the others //
function processClick(div) {
  var catlength = array.length;
  for(i = 0; i < catlength; i++) {
    var section = array[i];
    var head = document.getElementById(section + '-header');
    var cont = section + '-content';
    var contdiv = document.getElementById(cont);
    clearInterval(contdiv.timer);
    if(head == div && contdiv.style.display == 'none') {
      contdiv.style.height = '0px';
      contdiv.style.display = 'block';
      initSlide(cont,1);
    } else if(contdiv.style.display == 'block') {
      initSlide(cont,-1);
    }
  }
}

// Setup the variables and call the slide function //
function initSlide(id,dir) {
  var cont = document.getElementById(id);
  var maxh = cont.maxh;
  cont.direction = dir;
  cont.timer = setInterval("slide('" + id + "')", timer);
}

// Collapse or expand the div by incrementally changing the divs height and opacity //
function slide(id) {
  var cont = document.getElementById(id);
  var maxh = cont.maxh;
  var currheight = cont.offsetHeight;
  var dist;
  if(cont.direction == 1) {
    dist = (Math.round((maxh - currheight) / speed));
  } else {
    dist = (Math.round(currheight / speed));
  }
  if(dist <= 1) {
    dist = 1;
  }
  cont.style.height = currheight + (dist * cont.direction) + 'px';
  cont.style.opacity = currheight / cont.maxh;
  cont.style.filter = 'alpha(opacity=' + (currheight * 100 / cont.maxh) + ')';
  if(currheight < 2 && cont.direction != 1) {
    cont.style.display = 'none';
    clearInterval(cont.timer);
  } else if(currheight > (maxh - 2) && cont.direction == 1) {
    clearInterval(cont.timer);
  }
}
</script>

</head>
<body onload="slider('slider',0)">
		<div id="slider">
			<div class="header" id="1-header">+Меню1</div>
				<div class="content" id="1-content">
					<div class="text2">
						10 Vorschlage<br>
Ich konnt einfuhrend nach dieser Abteilung korrigieren
					</div>
				</div>
			<div class="header" id="2-header">+Меню2</div>
				<div class="content" id="2-content">
					<div class="text2">
						10 Vorschlage<br>
Ich konnt einfuhrend nach dieser Abteilung korrigieren
					</div>
				</div>
			<div class="header" id="3-header">+Меню3</div>
				<div class="content" id="3-content">
					<div class="text2">
						10 Vorschlage<br>
Ich konnt einfuhrend nach dieser Abteilung korrigieren
					</div>
				</div></div>



</body>
</html>
Ответить с цитированием
Ответ



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

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