基于jQuery实现列表循环滚动小技巧(超简单)

 更新时间:2021年08月31日 16:50:18   作者:安之ccy  
只要能够不停地把第一个item移动到末尾,其余的自会往上填补空缺,填补的过程用动画放慢些,就能有不断滚动的视觉效果了,这种效果基于jquery怎么实现呢?下面小编给大家带来了jQuery列表循环滚动效果的实现思路代码,一起看看吧

看到一个很好的思路,记录一下

之前使用jQuery做滚动效果,在这两篇文章里有写:文一文二,分别使用了scrollLeft()与scrollTop()、scroll()来实现

后来看到一个demo,觉得思路很妙,想着可以用来做列表内容项的滚动,效果大概是这样的:
在这里插入图片描述

思路是这样的:
只要能够不停地把第一个item移动到末尾,其余的自会往上填补空缺,填补的过程用动画放慢些,就能有不断滚动的视觉效果了(数组删了第一个元素,再在末尾加上这个元素,等于把第一个元素移动到末尾;元素总量没有改变,但位置全发生了改变)

代码:

// 要填充的数据
 var data = {
     infoItem : [
         "<strong>第1行:</strong>安之安之安之安之安之安之安之安之安之安之安",
         "<strong>第2行:</strong>阳光彩虹小白马阳光彩虹小白马阳光彩虹小白马",
         "<strong>第3行:</strong>天地之悠悠天地之悠悠天地之悠悠天地之悠悠天"
     ]
 }
 // 将数据动态填充到页面种
 var infoList = []
 for (let i = 0; i < data.infoItem.length; i++){
     let infoStr = `<div class="item">${data.infoItem[i]}</div>`
     infoList.push(infoStr);
 }
 $(".info-wrapper").html(infoList.join(""))

 // 设置计时器,每隔2秒执行一次(变换一次)
 var timer = null;
 timer = setInterval(function () {
     // 将第一行item移到最后一行,其他的往上挪填补空缺位
     var infoItemTmp = infoList.shift();
     $(".info-wrapper").append(infoItemTmp );
     $(".item:first").remove();
     infoList.push(infoItemTmp)

 }, 2000)

html和样式部分:

<div class="container">
        <div class="wrapper">
            <div class="info">
                <div class="info-wrapper"></div>
            </div>
        </div>
    </div>
.constainer {
    width: 900px;
    height: 400px;
    border: 2px solid #eee;
    display: flex;
    justify-content: center;
    align-items: center;
}

.wrapper {
    width: 500px;
    height: 300px;
    border: 1px solid #ccc;
    display: flex;
    justify-content: center;
    align-content: center;
}

.info {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-content: center;
}

.info-wrapper {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.item {
    border: 2px solid #ccc;
    border-left: 4px solid orange;
    height: 80px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    border-radius: 8px;
    margin-top: 20px;
}

目前效果是这样的:

在这里插入图片描述

再加上滑动效果的动画:

.item:first-child {
    animation: move 2s linear;
}
@keyframes move {
    100% {
        margin-top: -80px;
    }
}

不断滑动,到达可以加入新item的位置时,触发新item的加入:

// 设置计时器,每隔2秒执行一次(变换一次)--与animation动画时设置时间一致
var timer = null;
timer = setInterval(function () {
    if ($('.info').scrollTop() + $('.info').height() >= $('.info-wrapper').height()) {
        // 将第一行item移到最后一行,其他的往上挪填补空缺位
        var infoItemTmp = infoList.shift();
        $(".info-wrapper").append(infoItemTmp);
        $(".item:first").remove();
        infoList.push(infoItemTmp)
    }
}, 2000)

就可以得到开头的效果了

到此这篇关于基于jQuery实现列表循环滚动小技巧(超简单)的文章就介绍到这了,更多相关jQuery列表循环滚动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用jquery模拟a标签的click事件无法实现跳转的解决

    使用jquery模拟a标签的click事件无法实现跳转的解决

    这篇文章主要给大家介绍了关于使用jquery模拟a标签的click事件无法实现跳转的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • jQuery控制div实现随滚动条滚动效果

    jQuery控制div实现随滚动条滚动效果

    这篇文章主要介绍了jQuery控制div实现随滚动条滚动效果,对比分析了两种实现方法供大家参考选择,需要的朋友可以参考下
    2016-06-06
  • jQuery控制input只能输入数字和两位小数的方法

    jQuery控制input只能输入数字和两位小数的方法

    这篇文章主要介绍了jQuery控制input只能输入数字和两位小数的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • jQuery插件scroll实现无缝滚动效果

    jQuery插件scroll实现无缝滚动效果

    今天给大家分享一款页面无缝滚动的jquery.scroll插件。 支持上下左右,淡入淡出,滚动时间设置,动画时间设置,鼠标经过是否停止设置,滚动鼠标液动条看下页面的切换效果。该插件适用浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。
    2015-04-04
  • jquery实现仿JqueryUi可拖动的DIV实例

    jquery实现仿JqueryUi可拖动的DIV实例

    这篇文章主要介绍了jquery实现仿JqueryUi可拖动的DIV,实例分析了jquery模拟jqueryUI实现div拖动的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • JQuery中DOM事件绑定用法详解

    JQuery中DOM事件绑定用法详解

    这篇文章主要介绍了JQuery中DOM事件绑定用法,实例分析了bind方法绑定事件的相关技巧,需要的朋友可以参考下
    2015-06-06
  • jquery dataview数据视图插件使用方法

    jquery dataview数据视图插件使用方法

    这篇文章主要介绍了jquery dataview数据视图插件使用方法,数据填充与视图更新利器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • jquery实现图片切换代码

    jquery实现图片切换代码

    这篇文章主要为大家详细介绍了jquery实现图片切换代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 非常强大的 jQuery.AsyncBox 弹出对话框插件

    非常强大的 jQuery.AsyncBox 弹出对话框插件

    今天无意中发现了这个插件,和大家分享一下,功能和样式都很强大,调用也很方便,而且支持锁定屏幕的效果,插件的效果图如下,更多效果和皮肤请到官网下载!
    2011-08-08
  • 浅谈ajax在jquery中的请求和servlet中的响应

    浅谈ajax在jquery中的请求和servlet中的响应

    下面小编就为大家分享一篇浅谈ajax在jquery中的请求和servlet中的响应,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01

最新评论