【发布时间】:2021-10-25 01:39:02
【问题描述】:
我想做一个函数,比如当内部文本大于 div 大小时,内部文本从左到右自动无限移动。
我尝试过的
// chart movement
var chartMove = $(".chart_movement").width();
var chartMovetext = $(".chart_movement")[0].scrollWidth;
if (chartMovetext > chartMove) {
function chart_title_move() {
$(".chart_movement_text")
.animate({
left: "-40px",
right: "40px",
},
5000
)
.delay(1200);
$(".chart_movement_text")
.animate({
left: "40px",
right: "-40px",
},
5000,
function() {
chart_title_move();
}
)
.delay(1200);
}
chart_title_move();
}
.innerTextMove {
overflow: scroll;
position: absolute;
letter-spacing: 0.5px;
position: absolute;
width: auto;
margin: 0 auto;
left: 0;
right: 0;
top: 6px;
}
.chartTitleGuide {
width: 185px;
position: absolute;
white-space: nowrap;
overflow: hidden;
left: 0;
right: 0;
margin: 0 auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="col-start-3 col-span-3 grid justify-center items-center chartTitleGuide"><span class="chart_movement_text">name</span></div>
<div class="col-start-6 col-end-8 grid justify-center items-center chartTitleGuide"> <span class="chart_movement_text">Name</span></div>
问题是var chartMovetext = $(".chart_movement")[0].scrollWidth;每次都返回0。
希望我能得到一些关于如何实现它的信息。
【问题讨论】:
-
你的 dom 上没有带有
class="chart_movement"的元素 -
您可能需要注意,我没想到 scrollwidth 可以工作,但是当 DOM 中存在该类时,它似乎在 chrome 中工作。我发现了这个:stackoverflow.com/questions/13226296/…(它在所有浏览器中的工作方式都不一样)您可以使用另一种方法:stackoverflow.com/questions/118241/…,因为您似乎使用的是固定大小的像素。
标签: javascript html jquery css