<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Welcome!</title> <style> ul { position: fixed; right: 30px; top: 100px; } .red { color: red; } </style> </head> <body> <h1>title1</h1> <p style="height:300px;"></p> <h1>title2</h1> <p style="height:300px;"></p> <h1>title3</h1> <p style="height:300px;"></p> <h1>title4</h1> <p style="height:300px;"></p> <h1>title5</h1> <p style="height:300px;"></p> <h1>title6</h1> <p style="height:300px;"></p> <h1>title7</h1> <p style="height:300px;"></p> <h1>title8</h1> <p style="height:300px;"></p> <ul> <li>111111</li> <li>222222</li> <li>333333</li> <li>444444</li> <li>555555</li> <li>666666</li> <li>777777</li> <li>888888</li> </ul> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script> var timeout; $(window).on("scroll", function() { var self = $(this); if (timeout) window.clearTimeout(timeout); timeout = setTimeout(function () { var st = self.scrollTop(); var index = 0; $("h1").each(function() { if (st < $(this).offset().top) { index = $("h1").index($(this)) - 1; return false; } }); $("ul>li").removeClass('red').eq(index).addClass('red') }, 100); }) </script> </body> </html>