使用javascript讓html元件隱藏或顯示用很多方式,以下介紹最簡單的其中一種方式,只需要一行程式碼,而且元件可以重複利用,非常適合用來製作手風琴元件(accordion)。
就是同時使用inline event handlers及ternary operators。
範例如下
topic 1
topic 2
topic 3
範例程式碼如下:
<style> .accordion { background-color: #eee; color: #444; cursor: pointer; width: 100%; border: none; text-align: center; outline: none; font-size: 15px; transition: 0.4s; } .active, .accordion:hover { background-color: lightgrey; } .content{ background-color: white; text-align: left; padding:6px; } </style> <div class="accordion" onclick="this.childNodes[1].style.display = this.childNodes[1].style.display == 'none' ? 'block' : 'none'"> topic 1 <div class="content" style="display: none;"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla eu tristique libero. Pellentesque aliquam libero eget tempor ultricies. Etiam fringilla tincidunt commodo. Aenean consectetur porta nisi ac rutrum. Nullam aliquam fringilla lacus, nec cursus sapien pulvinar nec. Aenean nec nisi quis lectus laoreet pretium at id odio. Praesent vehicula maximus justo in semper. Morbi mattis sollicitudin turpis, eget condimentum purus rutrum a. Pellentesque at ligula in ex volutpat scelerisque sed vitae sem. Aliquam tincidunt gravida tellus eu porta. Proin aliquet risus et lectus varius tempus. </div> </div> <div class="accordion" onclick="this.childNodes[1].style.display = this.childNodes[1].style.display == 'none' ? 'block' : 'none'"> topic 2 <div class="content" style="display: none;"> Sed elementum semper mi, ac consequat mi iaculis eu. Morbi mattis velit sed egestas consequat. Sed ultrices, urna ac auctor consectetur, purus est volutpat urna, facilisis scelerisque tortor elit vel nulla. Curabitur dolor sapien, pellentesque sit amet vulputate vel, fringilla id est. Phasellus dictum diam sit amet pulvinar mattis. Sed aliquet ornare tortor, ac gravida urna porta in. Donec euismod sit amet ante in vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Cras gravida metus id dolor vestibulum, vel euismod magna elementum. Nullam viverra tristique facilisis. Suspendisse malesuada imperdiet maximus. </div> </div> <div class="accordion" onclick="this.childNodes[1].style.display = this.childNodes[1].style.display == 'none' ? 'block' : 'none'"> topic 3 <div class="content" style="display: none;"> Donec a malesuada mauris, ac elementum erat. Nunc condimentum urna porta suscipit consectetur. Cras in ligula non lacus dictum pulvinar. Nulla fringilla metus eu lectus vestibulum, non aliquam libero pretium. Fusce vel dui molestie, vulputate purus ac, tincidunt nibh. Pellentesque in ullamcorper justo. Donec egestas pulvinar nisl ut lacinia. Ut eleifend sem nec elit dignissim ullamcorper. Etiam vehicula fermentum scelerisque. </div> </div>
留言
張貼留言