要使用jQuery在水平滚动容器中查找元素的左侧位置,请将该animate()
函数与函数一起使用scrollLeft()
。
您可以尝试运行以下代码,以了解如何在水平滚动容器中查找元素的左侧位置:
<!DOCTYPE html> <html> <head> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script> $(document).ready(function() { var scrollArea = $('#box'); var toScroll = $('#box .myclass'); function myScroll() { toScroll.each(function() { var self = $(this); $(this).css('cursor', 'pointer'); $(this).on('click', function () { var leftOffset = self.offset().left - scrollArea.offset().left + scrollArea.scrollLeft(); scrollArea.animate({ scrollLeft: leftOffset }); alert(leftOffset); }); }); }; myScroll(); }); </script> <style> #box { width: 250px; height: 300px; margin-left: 20px; border: 1px solid black; overflow-x: scroll; white-space: nowrap; } .myclass { width: 250px; height: 100px; margin: 35px; display: inline-block; background: -webkit-linear-gradient(left, red , blue); background: -o-linear-gradient(right, red, blue); background: -moz-linear-gradient(right, red, blue); background: linear-gradient(to right, red , blue); } </style> </head> <body> <p>Get left position of element.</p> <div id="box"> <div class="myclass">First (Click Me)</div> <div class="myclass">Second (Click Me)</div> <div class="myclass">Third (Click Me)</div> </div> </body> </html>