JS实现鼠标经过某处后内容切换
原理:利用JS的 document.getElementsByClassName() 获取类对应的标签对象。并用Dom对象属性中的 onmouseover 捕获鼠标划过状态时 执行 替换CSS样式 方法,并让其他标签元素隐藏,实现界面交互效果
::栏目A呈现的内容::
我是SMM,其实不瞒你说。我已经继承了百万遗产
::栏目B呈现的内容::
我是Aipo,一个喜欢画画的中二少女
::栏目C呈现的内容::
我是叫夜夜,是群里的一个姬器人…
<style> //大盒子样式(非重点部分) .best_box { width: 500px; text-align: center; padding: 10px; margin: 100px auto; border: 2px solid #ccc; } //菜单样式 无效果 .bth { margin: 0px 5px; } //菜单样式 划过效果 .bth.sey { transition:1s; color: orange; } //分区之间间隔(非重点部分) .content_box { margin-top: 10px; } //内容部分 不显示 .content { display: none; } //内容部分 显示 .content.see { display: block; } </style> <div class="best_box"> <div class="menu_box"> <span class="bth sey">栏目A</span> <span class="bth">栏目B</span> <span class="bth">栏目C</span> </div> <div class="content_box"> <div class="content see"> <p>::栏目A呈现的内容::</p> <p>我是SMM,其实不瞒你说。我已经继承了百万遗产</p> </div> <div class="content"> <p>::栏目B呈现的内容::</p> <p>我是Aipo,一个喜欢画画的中二少女</p> </div> <div class="content"> <p>::栏目C呈现的内容::</p> <p>我是叫夜夜,是群里的一个姬器人...</p> </div> </div> </div> <script> //获取在CCS类名为 bin 下的所有对应标签 var getmenu = document.getElementsByClassName('bth'); //获取在CCS类名为 contents 下的所有对应标签 var contents = document.getElementsByClassName('content'); for (let i = 0; i < getmenu.length; i++) { getmenu[i].index = i; getmenu[i].onmouseover = function () { for (let j = 0; j < getmenu.length; j++) { //bth类中的标签重置样式:清除所有额外 see 样式 getmenu[j].className = getmenu[j].className.replace(' sey', '').trim(); //content类中的标签重置样式:清除所有额外 see 样式 contents[j].className = contents[j].className.replace(' see', '').trim(); } //为选中标签以及对应的内容 添加see样式 this.className = this.className + ' sey'; contents[this.index].className = contents[this.index].className + ' see'; } } </script>
JS实现单击 隐藏内容可见/隐藏
原理与前一个方案例大致相同,用 document.getElementsByClassName() 获取 "bnt" 类对应的标签对象(按钮组件)。由于返回的是对象,所以需要用下标引用。用 onclick 捕获鼠标单击事件 执行修改css类实现界面样式的变化。
<style> .box { width: 500px; padding: 20px; border: 2px solid #ccc; margin: 100px auto; text-align: center; } //该类实现标签隐藏 .content { display: none; } //该类实现标签显示 .content.see { display: block; } </style> <div class="box"> <button class="bnt">显示全文</button> <h4>我其实很想说一件事!那就是...</h4> <div class="content"> <p>这是隐藏的内容!</p> </div> </div> <script> //获取按钮位置 var get_bnt = document.getElementsByClassName('bnt'); var get_content = document.getElementsByClassName('content'); get_bnt[0].onclick = function () { if (get_content[0].className == 'content') { get_bnt[0].innerHTML = '隐藏原文'; get_content[0].className = get_content[0].className + ' see'; } else { get_bnt[0].innerHTML = '显示原文'; get_content[0].className = get_content[0].className.replace(' see', '').trim(); } } </script>