Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html


Как сделать выпадающий список при нажатии в html

В мы рассмотрели один из способов создания раскрывающегося списка при нажатии на ссылку. В этой статье мы рассмотрим способ, при котором уже раскрытая ссылка автоматически закрывается при нажатии на другую ссылку. 

1. Необходимо на странице, где мы хотим сделать выпадающий текст разместить  скрипт:

1 2 3 4 5 6 7 8 9 10 11 <script> var show; function hidetxt(type){ param=document.getElementById(type); if(param.style.display == "none") { if(show) show.style.display = "none"; param.style.display = "block"; show = param; }else param.style.display = "none" } </script>

 2. В том месте где должна быть ссылка с выпадающим текстом размещаем следующий код:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <> < onclick="hidetxt('div1'); return false;" href="#" rel="nofollow">Ссылка 1</> < style="display:none;" id="div1"> Много много много текста 1 </> </> <> < onclick="hidetxt('div2'); return false;" href="#" rel="nofollow">Ссылка 2</> < style="display:none;" id="div2"> Много много много текста 2 </> </> <> < onclick="hidetxt('div3'); return false;" href="#" rel="nofollow">Ссылка 3</> < style="display:none;" id="div3"> Много много много текста 3 </> </>

Теперь при нажатии на ссылку "Ссылку 1" она раскроется и появится текст "Много много много текста 1". При нажатии на ссылку "Ссылка 2" или "Ссылка 3" текст первой ссылки скроется, а откроется текст второй или третей ссылки соответственно и т.д.

Как видно из кода ссылка закрыта от индексирования. Это сделано, потому что поисковики такую ссылку не могут нормально обработь и выдают ответ, что такая страница не найдена. 

Плюсы данного метода:

 - минимум кода (это важно если расскрывающихся ссылок много), а код скрипта можно записать в модуль (например используя Special HTML for Joomla 1.5.x  ) и выводить через loadposition на тех страницах, где он необходим.

Много много много текста 1

Много много много текста 2

Много много много текста 3

Еще один способ с использованием плавного раскрытия:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> < xmlns="http://www.w3.org/1999/xhtml"> <> < http-equiv="Content-Type" content="text/html; charset=UTF-8" /> < rel="stylesheet" type="text/css" /> <>Раскрывающиеся блоки "div" на JavaScript. Демонстрация.</> <> #slider { width: 508px; color: #66666; font-family: Georgia; font-size: 20px; } .header { width: 488px; border: 1px solid #cccccc; padding: 8px; margin-top: 5px; cursor: pointer; text-align: center; } .header:hover { color: #666666; } .content { overflow: hidden; } .text { width: 474px; border: 1px solid #cccccc; border-top: none; padding: 15px; text-align: left; background: #eeeeee; font-size: 14px; } </> < 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); } } </> </> < onload="slider('slider',0)"> < id="intro"> <> < id="slider"> < class="header" id="1-header">Первый блок</> < class="content" id="1-content"> < class="text"> Содержимое блока. </> </> < class="header" id="2-header">Второй блок</> < class="content" id="2-content"> < class="text"> Содержимое блока. </> </> < class="header" id="3-header">Третий блок</> < class="content" id="3-content"> < class="text"> Содержимое блока. </> </> </> </> </> </> </>

Пример работы плавного раскрытия ссылки


Источник: http://ht.brooksite.ru/drop-text-collaps.html



Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Как сделать выпадающий список при нажатии в html

Похожие новости: