js实现内容滚动效果

首先说下实现内容滚动效果的思路:在一块区域内实现内容滚动效果,要求内容轮播,那么如何实现轮播呢?我们将原内容复制一份放置其后面,当原内容滚动完成(即父层scrollTop等于原内容区高度时),我们将父层scrollTop设置为0,此时又从原内容开始滚动。如果浏览者想看内容时,但内容一直再滚动怎么办呢?我们可以通过设置onmouseover事件来控制,当用户把鼠标悬停至内容区时,停止滚动;当鼠标移开时,继续滚动。

以下是代码部分:

html代码:
<div class="scroll" id="scroll">
        <div id="inner1">
            <p>1好好学习天天向上!</p>
            <p>2好好学习天天向上!</p>
            <p>3好好学习天天向上!</p>
            <p>4好好学习天天向上!</p>
            <p>5好好学习天天向上!</p>
            <p>6好好学习天天向上!</p>
            <p>7好好学习天天向上!</p>
            <p>8好好学习天天向上!</p>
        </div>
        <div id="inner2"></div>
    </div>
css样式:
        ul,li,p{margin:0;padding:0;list-style: none}
        body{padding:20px;}
        .scroll{
            line-height:28px;
            border:2px dashed #666;
            padding:0 20px;
            height:112px;
            overflow:hidden;
            background-color:#f1f1f1;
        }
js代码:
function srcoll(){
        var _scroll = document.getElementById("scroll"),
            _inner1 = document.getElementById("inner1"),
            _inner2 = document.getElementById("inner2"),
            speed = 20;
        _inner2.innerHTML = _inner1.innerHTML;
        function marquee(){
            if(_inner1.offsetHeight<=_scroll.scrollTop){
                _scroll.scrollTop = 0
            }else{
                _scroll.scrollTop++;
            }
        }
        var interval = setInterval(marquee,speed);
        _scroll.onmouseover = function(){
            clearInterval(interval);
        }
        _scroll.onmouseout = function(){
            interval = setInterval(marquee,speed);
        }
    }
    srcoll()
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现列表内容自动向上滚动效果,可以使用原生的JavaScript来操作DOM元素和定时器。 首先,可以通过getElementById或querySelector等方法获取到包含列表内容的元素。 然后,通过获取元素的高度、内容等信息来判断是否需要滚动。 接着,可以利用定时器setInterval来不断改变元素的scrollTop属性值,实现滚动效果。 具体步骤如下: 1. 首先,获取到包含列表内容的元素: ```javascript var listContainer = document.getElementById("listContainer"); //或者使用querySelector根据CSS选择器选择元素: var listContainer = document.querySelector("#listContainer"); ``` 2. 判断是否需要滚动,比如当元素内容的高度大于元素本身的高度时才需要滚动: ```javascript if(listContainer.scrollHeight > listContainer.clientHeight){ // 需要滚动,执行后续操作 } ``` 3. 设置定时器,不断改变元素的scrollTop属性值,实现滚动效果: ```javascript var isScrolling = true; // 表示是否正在滚动 setInterval(function(){ if(isScrolling){ listContainer.scrollTop += 1; // 每次滚动1个像素,可根据需要调整滚动速度 if(listContainer.scrollTop === (listContainer.scrollHeight - listContainer.clientHeight)){ listContainer.scrollTop = 0; // 滚动到底部后,回到顶部 } } }, 50); // 每50毫秒滚动一次,可根据需要调整滚动速度 ``` 4. 可以添加一些事件来控制滚动的开始和停止,比如鼠标进入和离开时暂停和恢复滚动效果: ```javascript listContainer.onmouseover = function(){ isScrolling = false; // 鼠标进入时停止滚动 } listContainer.onmouseout = function(){ isScrolling = true; // 鼠标离开时恢复滚动 } ``` 以上就是用原生JavaScript实现列表内容自动向上滚动效果的基本步骤。根据具体需求,还可以进行一些定制和调整,比如添加缓动效果、点击按钮控制滚动等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值