javascript - scrollTop 到 div 的全高

标签 javascript jquery html scroll scrolltop

以下代码自动滚动到 div 的底部,然后在 5 秒的时间跨度内返回,然后循环。

我遇到的问题是它无法识别 div 的可滚动/溢出高度,而这正是我设置的标准高度。向下滚动时它会跳到底部,而在向上滚动时它会缓慢滚动。

如何更改代码,使其向下滚动和向上滚动一样顺畅?

function scroll(speed) {
		$('.name').animate({ scrollTop: $('.name').scrollTop() + $('.name').height() }, speed, function() {
			$(this).animate({ scrollTop: 0 }, speed);
		});
	}

	speed = 5000;

	scroll(speed);
	setInterval(function(){scroll(speed)}, speed * 2);
.name {
	-webkit-writing-mode: vertical-lr;
	-ms-writing-mode: tb-lr;
	writing-mode: vertical-lr;
	text-orientation: upright;
	letter-spacing: -2px;
	font-family: 'digital';
	width: 16px;
	height: 87px;
	background-image: radial-gradient(circle at bottom,  rgba(245,245,245,1) 20%,rgba(100,100,100,1) 100%);
	box-sizing: border-box;
	border:solid 1px #9effff; 
	margin-left: 7px;
	margin-top: 6px;
	float: left;
	border-radius: 5px;
	overflow: auto;
}	

::-webkit-scrollbar { 
    display: none; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div class="name">abcdefghijkl</div>
<div class="name">abcdefg</div>
<div class="name">abcdefghijklmnopqrs</div>
<div class="name">abcdefghi</div>

最佳答案

这是解决方案:

function scroll(speed) {
    $('.name').each(function() {
      let $this = $(this), 
          st = $this.prop('scrollHeight') - $this.height();
      $this.animate({
        scrollTop: st,
      }, speed, function() {
        $this.animate({ scrollTop: 0 }, speed);
      });
    })
}

Demo on CodePen

关于javascript - scrollTop 到 div 的全高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892361/

相关文章:

javascript - Jquery .show 按钮不起作用

php - 在 PHP 中调用 JS 文件

jquery - 使用 jquery、html 和 css 在菜单项上创建颜色淡化效果时出现问题

jquery - jquery动画中的背景图片位置变化

javascript - php mail() 在填写表单之前发送邮件

javascript - 短父元素中 float 图像上不需要的底部边距

javascript - Firefox 8.0 中的 Facebook Connect 错误

javascript - 使用 Javascript 和 SQL 时数据库返回 "[object Object] "

javascript - 链接的点击事件

javascript - 使用 jQuery 创建嵌套列表