美文网首页
jq点击对应的字母滚动到对应的城市

jq点击对应的字母滚动到对应的城市

作者: 每天进步一点点5454 | 来源:发表于2024-09-04 14:58 被阅读0次

    无脑直接拿代码可用
    demo示例


    image.png
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>Scroll to Top Example</title>
        <style>
            .city-list-container {
                height: 300px;
                /* 根据需要设置高度 */
                position: relative;
            }
    
            .city-list {
                position: absolute;
                top: 0;
                left: 0;
            }
    
            .alphabet {
                position: absolute;
                top: 0;
                right: 0;
                padding: 10px;
            }
        </style>
    </head>
    
    <body>
        <div class="city-list-container city-list" style="overflow: auto;    width: 92%;">
            <div class="">
                <!-- 城市列表 -->
                <div class="city"  data-initial="A">
                    <p>aaaaaaaaaaaaaaaaaaaaaaaaa</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                </div>
                <div class="city"  data-initial="B">
                    <p>bbbbbbbbbbbbbbbbbbbb</p>
                    <p>2222222222222222</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>1111111111111111111111111111</p>
                    <p>2222222222222222</p>
                    <p>2222222222222222</p>
                </div>
                <div class="city"  data-initial="C">
                    <p>ccccccccccccccccccccccc</p>
                    <p>333333333333333333</p>
                    <p>333333333333333333</p>
                    <p>333333333333333333</p>
                    <p>333333333333333333</p>
                    <p>333333333333333333</p>
                    <p>333333333333333333</p>
                    <p>333333333333333333</p>
    
                </div>
                <div class="city"  data-initial="D">
                    <p>dddddddddddddddddddddddd</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                    <p>444444444444444444</p>
                </div>
                <div class="city"  data-initial="E">
                    <p>eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                    <p>55555555555555555555555555555555555</p>
                </div>
            </div>
        </div>
    
            <div class="alphabet">
                <div>A</div>
                <div>B</div>
                <div>C</div>
                <div>D</div>
                <div>E</div>
                <div>F</div>
                <div>G</div>
                <div>H</div>
                <div>I</div>
                <div>J</div>
                <div>K </div>
            </div>
        <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
        <script>
            $(document).ready(function () {
                var cityList = $('.city-list');
                var cityElements = cityList.find('.city'); // 假设每个城市有一个class为city
                var alphabet = $('.alphabet');
                alphabet.on('click', 'div', function () {
                    var char = $(this).text();
                    var targetCity = cityElements.filter('[data-initial=' + char + ']');
                    console.log(targetCity.offset().top)
                    if (targetCity.length) {
                        cityList.animate({
                            scrollTop: targetCity.offset().top - cityList.offset().top + cityList.scrollTop()
                        }, 'slow');
                    }
                });
            });
        </script>
    </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:jq点击对应的字母滚动到对应的城市

          本文链接:https://www.haomeiwen.com/subject/zvolljtx.html