代碼以下:html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>導航效果</title> <style> div, li, ul, a { margin: 0; padding: 0; } ul, li { list-style: none; } ul { width: 500px; height: 35px; display: block; white-space: nowrap; overflow: hidden; overflow-x: auto; border-bottom: 1px solid #dd3; } ul > li { width: 60px; height: 35px; display: inline-block; cursor: pointer; color: #8d19f3; font-size: 18px; text-align: center; line-height: 35px; } ul > li:not(:first-child) { margin-left: 25px; } ::-webkit-scrollbar { width: 0; height: 0; } </style> </head> <body> <ul class="box"> <li>導航一</li> <li>導航二</li> <li>導航三</li> <li>導航四</li> <li>導航五</li> <li>導航六</li> <li>導航七</li> <li>導航八</li> <li>導航九</li> <li>導航十</li> <li>導航十一</li> <li>導航十二</li> <li>導航十三</li> <li>導航十四</li> <li>導航十五</li> <li>導航十六</li> </ul> <script> var timer = null, parentElement = document.querySelector(".box"), childElement = document.querySelectorAll("li"); for (var i = 0, len = childElement.length; i < len; i++) { childElement[i].index = i; childElement[i].onclick = function() { var offsetLeft = childElement[this.index].offsetLeft, scrollX = parentElement.scrollLeft, clientX = parentElement.clientWidth, childClientX = childElement[this.index].clientWidth; var speed = offsetLeft - scrollX + childClientX / 2 - clientX / 2, s = speed / 40, totalX = speed + scrollX; timer = setInterval(function() { parentElement.scrollLeft += s; if ( parentElement.scrollLeft <= 0 || parentElement.scrollLeft >= parentElement.scrollWidth - clientX || (speed > 0 && parentElement.scrollLeft > totalX) || (speed < 0 && parentElement.scrollLeft < totalX) ) { clearInterval(timer); } }, 10); }; } </script> </body> </html>
效果如圖所示:web
鄙人建立了一個QQ羣,供你們學習交流,但願和你們合做愉快,互相幫助,交流學習,如下爲羣二維碼:學習