html列表横向显示-JS+HTML实现列表动态无限滚动

2023-10-01 0 407 百度已收录

JS+HTML实现列表动态无限滚动问题

在HTML开发页面项目中,我们经常会遇到滚动列表——当实际需要显示的内容的长度或高度超过容器的长度或高度时,设置CSS

    overflow-x:auto;
    overfow-y:auto;

当滚动列表中的内容比较小时,我们可以将所有内容一次性加载到列表容器中进行显示。

当滚动列表内容较多时,使用分页加载逐步加载数据,2种形式

1、通过在列表末尾添加标签元素指示器,并添加列表的滚动波浪来监听指示器元素是否可见,如果可见,则提交请求加载下一页数据并追加到列表内容的末尾。 通过这种方法,可以实现无限制的数据加载,而且数据依然取到。

2、列表上方添加分页工具栏。 用户通过请求获取指定页面的数据,并替换为当前列表中的内容。

对于模式 1,我们希望用户友好。 加载的数据不会重复加载,请求的资源小。 当量较大时html列表横向显示,页面上的DOM元素数量会不断减少html列表横向显示,消耗的显存也会增加。

模式2要求用户每次翻页时都重新请求数据。 这也适用于以前查看过并想要重新查看的数据。 它需要更多的资源。 目的是页面上的DOM元素数量固定,占用显存资源较少。

那么有没有一种方法可以结合模式1和方法2的优点,消除缺点,综合优化呢?

~~是的! 有一个办法~~

解决方案:

html列表横向显示-JS+HTML实现列表动态无限滚动

当前列表的宽度和高度是固定的,列表中包含的内容的高度也是固定的。 当列表滚动以满足条件时,会动态删除或添加元素。 保持元素数量固定可以确保内容正确显示在列表的可见区域中。

列表可以无限滚动,数据可以无限加载,DOM元素可以保持一定数量

我们先放出实现代码。




    
    Title
    
    
        .infinity-scroll{
            width: 300px;
            height: 500px;
            position: absolute;
            left:10px;
            top:10px;
            background-color: #ffffff;
            box-sizing: border-box;
            border:1px solid green;
            overflow-x: hidden;
            overflow-y: auto;
        }
        .main-content{
            position: absolute;
            left: 0px;
            top: 0px;
            width: 100%;
            box-sizing: border-box;
            background-color: #cccccc;
            border: 1px solid #ffffff;
        }
        .item{
            width: 100%;
            height: 50px;
            background-color: #ffffff;
        }
        .item:nth-child(2n+1){
            background-color: green;
        }
        .scroll-wrapper{
            width: 100%;
            background-color: red;
            height: 2000px;
        }
        .hide{
            display: none;
        }
    
    
        $(function(){
            var infinity_scroll_height;
            var infinity_scroll_top;
            var isLoading=false;
            var lastMaxItemIndex=parseInt($(".item.last-item").last().attr("data-items-index"),10);
            function appendNewItems(prev_main_content_height,scroll_top){
                requestAnimationFrame(function(){
                    var documentFragment=document.createDocumentFragment();
                    var i,item;
                    var lastIndex=parseInt($(".item.last-item").attr("data-items-index"),10);
                    $(".item.last-item").removeClass("last-item");
                    for(i=0;i<10;i++){
                        lastIndex++;
                        item=$('
2
'); $(item).attr(&

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 html html列表横向显示-JS+HTML实现列表动态无限滚动 https://www.wkzy.net/game/198240.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务