Цитата:
|
korifey,
вариант для кнопок в блоке .open <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #b1,#b4,#b5,#b6,#b3,#b2{width:50px;height:30px;background-color:brown;cursor:pointer;float:left;margin-right:5px;text-align:center;padding-top:10px} .cat-all,.mcat-all,.misk,.men1,.msor,.isk{width:300px;height:100px;border:1px solid #000000;display:none;text-align:center;padding-top:50px} div.open { display: block; } #b6, #b3{ background-color: #008000; } </style> </head> <body> <div id="b3"><div>b3</div></div> <div id="b2">b2</div> <div id="b1">b1</div> <div id="b4"><span>b4</span></div> <br><br><br> <div id="mpois" class="isk">block button 1</div> <div class="cat-all">block button 2</div> <div class="men1"> <div id="b5">b5</div> <div id="b6">b6</div> </div> <div class="cat-all">block button 5</div> <div class="msor">block button 6</div> <div class="h-n">bla-bla</div> <script> let open; const rels=[['#b3','.men1'],['#b6','.msor']]; addEventListener( 'click' , ({target}) => { let item = rels.find(([selector, ..._]) => target.closest(selector)); if(item) { item = document.querySelector(item[1]); if(!item) return; item.classList.toggle('open'); } else if(target.closest('.open')) return; if(open && open != item) open.classList.remove('open'); open = item; document.querySelector('.h-n').hidden = document.querySelector('.open'); }) </script> </body> </html> |
Ну на странице 4 кнопки открывающие каждая свой блок и открывшемся блоке кнопки b4 есть еще 2 кнопки при клике по которым так же открывались бы их блоки.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #b1,#b4,#b5,#b6,#b3,#b2{width:50px;height:30px;background-color:brown;cursor:pointer;float:left;margin-right:5px;text-align:center;padding-top:10px} .cat-all,.mcat-all,.misk,.men1,.msor,.isk{width:300px;height:100px;border:1px solid #000000;display:none;text-align:center;padding-top:50px} div.open { display: block; } #b1, #b3{ background-color: #008000; } </style> </head> <body> <div id="b3"><div>b3</div></div> <div id="b2">b2</div> <div id="b1">b1</div> <div id="b4"><span>b4</span></div> <br><br><br> <div id="mpois" class="isk">block button 1</div> <div class="cat-all">block button 2</div> <div class="men1"> <div id="b5">b5</div> <div id="b6">b6</div> </div> <div class="cat-all">block button 5</div> <div class="msor">block button 6</div> <div class="h-n">bla-bla</div> <script> let open; const rels=[['#b3','.isk'],['#b2','.cat-all'],['#b1','.isk'],['#b4','.men1'],['#b5','.cat-all'],['#b6','.msor']]; addEventListener( 'click' , ({target}) => { if(target.closest('.open')) return; let item = rels.find((selector, ..._) => target.closest(selector)); if(item) { item = document.querySelector(item[1]); if(!item) return; item.classList.toggle('open'); } if(open && open != item) open.classList.remove('open'); open = item; document.querySelector('.h-n').hidden = document.querySelector('.open'); }) </script> </body> </html> |
korifey,
для блока на строке 32 нужен другой класс! |
korifey,
код используйте из поста #22 |
korifey,
['#b5','.cat'] <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #b1,#b4,#b5,#b6,#b3,#b2{width:50px;height:30px;background-color:brown;cursor:pointer;float:left;margin-right:5px;text-align:center;padding-top:10px} .cat-all,.mcat-all,.misk,.men1,.msor,.isk, .cat{width:300px;height:100px;border:1px solid #000000;display:none;text-align:center;padding-top:50px} div.open { display: block; } #b4, #b5, #b6{ background-color: #008000; } </style> </head> <body> <div id="b3"><div>b3</div></div> <div id="b2">b2</div> <div id="b1">b1</div> <div id="b4"><span>b4</span></div> <br><br><br> <div id="mpois" class="isk">block button 1</div> <div class="cat-all">block button 2</div> <div class="men1"> <div id="b5">b5</div> <div id="b6">b6</div> </div> <div class="cat">block button 5</div> <div class="msor">block button 6</div> <div class="h-n">bla-bla</div> <script> let open; const rels=[['#b3','.isk'],['#b2','.cat-all'],['#b1','.isk'],['#b4','.men1'],['#b5','.cat'],['#b6','.msor']]; addEventListener( 'click' , ({target}) => { let item = rels.find(([selector, ..._]) => target.closest(selector)); if(item) { item = document.querySelector(item[1]); if(!item) return; item.classList.toggle('open'); } else if(target.closest('.open')) return; if(open && open != item) open.classList.remove('open'); open = item; document.querySelector('.h-n').hidden = document.querySelector('.open'); }) </script> </body> </html> |
А можно сделать что бы кнопки b2 и b5 открывали один и тот же блок?
|
Цитата:
|
Просто я иду последовательно сперва открытие и закрытие всех блоков а затем уже по каждому.Извините если что не так.
32 строку убрать. |
Еще раз огромное СПАСИБО!!!
|
Часовой пояс GMT +3, время: 06:23. |