
css样式
<style> * { margin: 0px; padding: 0px; } ul { list-style: none; } html, body { height: 100%; width: 100%; background: black; } a { text-decoration: none; } ul { position: relative; background: #fff; overflow: hidden; width: 900px; margin: 50px auto; padding: 20px 0px; display: flex; border-radius: 5px; } ul li { position: relative; z-index: 10; flex: 1; text-align: center; } ul li a { font-size: 18px; color: #333; } .bg { width: 83px; height: 42px; display: inline-block; background-color: red; position: absolute; left: 34px; top: 0px; bottom: 0px; margin: auto; z-index: 2; } </style>
复制
body
<body> <ul> <span class="bg"></span> <li> <a href="javascript:;">首页</a> </li> <li> <a href="javascript:;">电视剧</a> </li> <li> <a href="javascript:;">新电影</a> </li> <li> <a href="javascript:;">新闻</a> </li> <li> <a href="javascript:;">娱乐</a> </li> <li> <a href="javascript:;">军事</a> </li> </ul> <script> // 需求:鼠标经过哪个导航栏目,背景色滑动过去 var liList = document.getElementsByTagName('li'); var bg = document.getElementsByClassName('bg')[0]; var header = 34; var liLeft = 34; console.log(34); // 添加事件 // 遍历li for (var i = 0; i < liList.length; i++) { liList[i].onmouseover = function () { liLeft = this.offsetLeft + (this.offsetWidth - bg.offsetWidth) / 2; } } // 使用定时器 setInterval(function () { header = header + (liLeft - header) / 10; bg.style.left = header + 'px'; }, 10) </script> </body>
复制