gpt4 book ai didi

javascript - Ticker 将数字合并为一个

转载 作者:行者123 更新时间:2023-11-30 06:12:00 26 4
gpt4 key购买 nike

我的页面上有两个数字代码,两个代码合并为一个。

演示:

$(document).ready(function() {
var initialValue = $('#ticker .count').text()
$('#ticker').waypoint({
handler: function() {
$('.count').each(function() {
const format = formatter(initialValue)

$(this).prop('Counter', 0).animate({
Counter: format.value
}, {
duration: 1500,
easing: 'swing',
step: function(now) {
$(this).text(format.revert(Math.ceil(now)));
}
});
});
},
offset: '100%'
});
})

// keep string after count
function formatter(str) {
const char = 'x'
const template = str.replace(/\d/g, char)
const value = str.replace(/\D/g, '')

function revert(val) {
const valStr = val.toString()
let result = ''
let index = 0
for (let i = 0; i < template.length; i++) {
const holder = template[i]
if (holder === char) {
result += valStr.slice(index, index + 1)
index++
} else {
result += holder
}
}
return result
}
return {
template: template,
value: value,
revert: revert
}
}
.gap {
background: lightgrey;
height: 20px;
}

.gap2 {
margin: 20px 0px;
background: red;
height: 50px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/waypoints/4.0.1/jquery.waypoints.min.js"></script>

<div id="ticker">
<span class="count counter">16,000+</span>
</div>

<div class="gap"></div>

<div id="ticker">
<span class="count counter">$64 million</span>
</div>

<div class="gap2">Expected output below (but they obviously count up to that number)</div>

<!-- expected output -->

<div id="ticker">
<span>16,000+</span>
</div>

<div class="gap"></div>

<div id="ticker">
<span>$64 million</span>
</div>

为什么会这样?我认为问题出在这一行:

const format = formatter(initialValue)

因为注释掉的时候,虽然不统计,但是只显示一个数。但是看不出为什么会导致这次合并?

编辑:

已编辑片段以展示预期的最终结果。

最佳答案

是的,你是对的。请更换

const format = formatter(initialValue)

const format = formatter($(this).text());

此更改将为您提供预期的输出。

您正在遍历每个“计数”div,因此无需将其存储在变量中,因为“.text()”行合并了所有“计数”div 的输出。

因此,循环获取 div 的文本。

关于javascript - Ticker 将数字合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58344119/

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