js 实现 列表向上无限滚动 新闻列表

效果展示

(鼠标移入,滚动停止;鼠标移出,滚动继续)
在这里插入图片描述
html:>>

<div class="boxbig">
	<ul class="ul"></ul>
	<ul class="con"></ul>
</div>

css:>>

			* {
				 margin: 0;
				 padding: 0;
				 box-sizing: border-box;
			}

			.boxbig {
				overflow: hidden;
				border: 1px solid green;
				width: 200px;
				height: 200px;
				cursor: pointer;
			}

			li {
				list-style: none;
			}

			ul {
				list-style: none;
				display: flex;
				flex-direction: column;
				justify-content: space-between;
			}

			body {
				display: flex;
				justify-content: center;
				align-items: center;
				height: 100vh;
			}

			li {
				font-size: 20px;
				letter-spacing: 4px;
				border-bottom: 1px solid green;
				margin: 5px 0;
			}

js:>>

const con = document.querySelector(".con")
const boxbig = document.querySelector(".boxbig")
const ul = document.querySelector(".ul")
let data = ['1111111', '22222222', '333333333', '33333333333', '555555555555', '122112122112']
let str = '',time = null
data.forEach(v => {
	str += `<li>${v}</li>`
})
ul.innerHTML = str

function scrollUp(speed) {
	if (ul.offsetHeight >= con.offsetHeight) {
	con.innerHTML = ul.innerHTML
	ime = setInterval(scrol, speed)
	boxbig.addEventListener('mouseover',()=>{
		clearInterval(time)
	})
	boxbig.addEventListener('mouseleave',()=>{
		time = setInterval(scrol, speed)
	})
					
	function scrol() {
		if (boxbig.scrollTop >= ul.scrollHeight) {
			boxbig.scrollTop = 0
		} else {
			boxbig.scrollTop++
		}
		if (boxbig.scrollTop % 25 == 0) {
			clearInterval(time)
			setTimeout(() => {
				time = setInterval(scrol, speed)
				}, 1)
			}
		}
	}
}
					
scrollUp(100)

ok

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值