文字从上到下无缝轮播,一直循环滚动轮播

思路:无缝循环轮播,是一个轮播框(父节点)包含两个子节点,其中一个子节点是文字主体,另一个是这个子节点的复制品,即:在父类节点一定的高度下,这两个子节点实现由下而上的滚动。

贴代码前说下大家一般遇到的问题:不滚动或者滚动一段时间后不循环?

此问题的的症结在于父类节点的高度,解决思路为:

css先给轮播框一定的高度,js判断如果子节点主体文字的高度小于父类轮播框的高度,则轮播框父节点随子节点主体文字的高度而动态变化。

废话不多说,直接上代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>文字从下到上无缝轮播</title>
    <style>
        #rollCon{width: 80%;text-align: center;display: block;overflow: hidden;color: black;height: 35%;position: absolute;top: 55%;left: 10%;}
        #rollSubject{height: auto;}
        #rollCopy{height: auto;}
    </style>
</head>
<body>
<div id="rollCon">
    <div id="rollSubject">
        <p>骑着单车的我俩</p>
        <p>怀紧贴背的拥抱</p>
        <p>难离难舍想抱紧些</p>
        <p>茫茫人生好象荒野 </p>
        <p>如孩儿能伏于爸爸的肩膊 </p>
        <p>谁要下车 </p>
    </div>
    <div id="rollCopy"></div>
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
    var scrollTop = window.pageYOffset|| document.documentElement.scrollTop || document.body.scrollTop;
    var rollCon = document.getElementById('rollCon');
    var rollSubject = document.getElementById('rollSubject');
    var rollCopy = document.getElementById('rollCopy');
    rollCopy.innerHTML = rollSubject.innerHTML;
    if(($('#rollSubject').height()>0)&&($('#rollSubject').height()<$('#rollCon').height())){
        $('#rollCon').css('height',$('#rollSubject').height());
        setInterval(Marquee, 50);
    }else if(($('#rollSubject').height()>0)&&($('#rollSubject').height()>=$('#rollCon').height())){
        setInterval(Marquee, 50);
    }
    function Marquee() {
        if ((rollCopy.offsetTop-rollSubject.offsetTop)<rollCon.scrollTop)
            rollCon.scrollTop =0;
        else {
            rollCon.scrollTop++;
        }
    }
</script>
</body>
</html>

或者点此下载

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现CSS纵向无缝轮播滚动效果,你可以使用CSS的动画和关键帧来创建一个无限循环滚动效果。下面是一个简单的示例代码,演示如何实现纵向无缝轮播滚动效果: HTML结构: ```html <div class="slider"> <div class="slide">Slide 1</div> <div class="slide">Slide 2</div> <div class="slide">Slide 3</div> </div> ``` CSS样式: ```css .slider { height: 200px; /* 设置容器高度 */ overflow: hidden; /* 隐藏溢出内容 */ } .slide { height: 200px; /* 设置每个滑块的高度,与容器高度一致 */ animation: slideUp 10s infinite; /* 使用slideUp动画,持续时间10秒,无限循环 */ } @keyframes slideUp { 0% { transform: translateY(0); } /* 初始位置 */ 25% { transform: translateY(-200px); } /* 向上移动一个滑块的高度 */ 50% { transform: translateY(-400px); } /* 向上移动两个滑块的高度 */ 75% { transform: translateY(-600px); } /* 向上移动三个滑块的高度 */ 100% { transform: translateY(0); } /* 返回初始位置,形成无缝滚动效果 */ } ``` 在上面的示例中,`.slider`元素是容器,设置了固定的高度,并且通过`overflow: hidden;`隐藏溢出内容。`.slide`元素是每个滑块,设置了相同的高度,并且应用了`slideUp`动画,持续时间为10秒,设置为无限循环。 `@keyframes slideUp`定义了滑块的动画效果。使用`transform: translateY()`来实现向上移动滑块的效果。通过设置不同的百分比位置,可以控制滑块在不同阶段的位置,从而实现无缝滚动效果。 你可以根据自己的需求调整容器和滑块的高度、动画持续时间,以及滑块的移动距离,来实现自己想要的纵向无缝轮播滚动效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值