gpt4 book ai didi

javascript - 如何使用 HTML5 流畅地滚动文本

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:48 24 4
gpt4 key购买 nike

我想尽可能平滑地滚动单行文本

我的目标设备是 1920 x 120 分辨率且无输入。 (没有键盘或鼠标)。它的 CPU 功率不足。

<html>
<head>
<title>News</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(function() {
$.get('data.txt', function(data) {
$('#text-file-container').html(data);
});
});
</script>
<link rel="stylesheet" href="content.css">
</head>
<body>

<div id="scroll">
<h1>
<marquee behavior="scroll" direction="left" scrollamount="15" id="text-file-container"></marquee>
</h1>
</div>

</body>
</html>

我尝试了一个在网上找到的 JS 库,但它的性能很差我愿意接受建议

最佳答案

您可以尝试使用 CSS 动画和过渡,而不是 JavaScript 库/插件或 marquee(如评论中所述,它是 obsolete and should be avoided)。

如何使用 CSS 和动画完成的示例:

* {
margin:0;
padding:0;
border:0;
}

@keyframes slide {
from { left: 100%;}
to { left: -100%;}
}
@-webkit-keyframes slide {
from { left: 100%;}
to { left: -100%;}
}

#marquee {
color:red;
background:#f0f0f0;
width:100%;
height:120px;
line-height:120px;
overflow:hidden;
position:relative;
}

#text {
position:absolute;
top:0;
left:0;
width:100%;
height:120px;
font-size:30px;
animation-name: slide;
animation-duration: 10s;
animation-timing-function: linear;
animation-iteration-count: infinite;
-webkit-animation-name: slide;
-webkit-animation-duration: 10s;
-webkit-animation-timing-function:linear;
-webkit-animation-iteration-count: infinite;
}
<div id="marquee">
<div id="text">Your Text</div>
</div>

您可以通过更改animation-duration 的值来调整跑马灯的速度。并且你应该根据文本的长度修改to的值。


comment from Jay 之后更新: 当文本大于选取框的空间时选取框失败。一种解决方案是使空格不换行/换行,并使用考虑文本大小的动画(使用变换而不仅仅是位置来移动文本):

* {
margin:0;
padding:0;
border:0;
}

@keyframes slide {
from { left:100%; transform: translate(0, 0); }
to { left: -100%; transform: translate(-100%, 0); }
}
@-webkit-keyframes slide {
from { left:100%; transform: translate(0, 0); }
to { left: -100%; transform: translate(-100%, 0); }
}

.marquee {
color:red;
background:#f0f0f0;
width:100%;
height:120px;
line-height:120px;
overflow:hidden;
position:relative;
}

.text {
position:absolute;
top:0;
white-space: nowrap;
height:120px;
font-size:30px;
animation-name: slide;
animation-duration: 30s;
animation-timing-function: linear;
animation-iteration-count: infinite;
-webkit-animation-name: slide;
-webkit-animation-duration: 30s;
-webkit-animation-timing-function:linear;
-webkit-animation-iteration-count: infinite;
}
<p>Text Fits</p>
<div class="marquee">
<div class="text">Text Here</div>
</div>

<p>Text overflows</p>
<div class="marquee">
<div class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eget sem non lacus condimentum dictum quis id tortor.</div>
</div>

然后我的浏览器上的运动有点不稳定。我会寻找更流畅的解决方案,但这会解决文本长度问题。

关于javascript - 如何使用 HTML5 流畅地滚动文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32638465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com