我的要求是,当另一个值来自另一个API时,我想用幻灯片动画显示价格排序。总共有5个API。动画就像我们通常在任何联赛中看到的那样,排名最低的球员会出现动画或任何游戏。
下面是我的代码(它是在.cshtml):
<ul id="externalPharmacyList" @* data-aos="fade-up" *@></ul>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
$(document).ready(function () {
var data1 = @Html.Raw(Json.Serialize(Model));
var data2 = @Html.Raw(Json.Serialize(Model));
var jsonData = data1.concat(data2);
function displaySortedData() {
// Modify the sorting function to compare copay values as numbers
var sortedJsonData = jsonData.sort(function (a, b) {
return parseFloat(a.copay) - parseFloat(b.copay);
});
for (var i = 0; i < sortedJsonData.length; i++) {
var item = sortedJsonD`your text`ata[i];
var fullAddress = item.address1 + " " + item.address2 + " " + item.city + " " + item.state + " " + item.zipCode;
var listItemHtml = `
<li style="display:none;">
<div class="b-m-pharmacy-det">
<div class="b-p-name">
${item.pharmacyName}
<small>${fullAddress}</small>
</div>
<div class="b-m-qty">
${item.quantity} ${item.drugName}
</div>
<div class="b-m-price" style="text-align:right">
${item.copay}
</div>
</div>
</li>`;
$('#externalPharmacyList').append(listItemHtml);
}
// Apply the slide animation to the list items
$('#externalPharmacyList li').slideDown();
}
// Call the displaySortedData function after both data sets are concatenated
displaySortedData();
});
字符串
在这段代码中,值来自soap API,我将其转换为JSON,然后类似地,我再次调用该API并将其排序在另一个变量中。然后,我将两个JSON数据结合起来。之后,我将对传入的JSON数据进行排序,然后应用幻灯片动画。我可能在这里错了,因为我想在排序时应用动画。如果有人能指导我做什么,那将非常有帮助。我做错了。
1条答案
按热度按时间um6iljoc1#
这里重要的一点是不仅要对数据进行排序,还要对列表项的重新排序进行动画。您当前的方法涉及将排序的项附加到列表中,然后使用slideDown进行动画。然而,slideDown更适合显示隐藏的元素,而不是排序动画。
我认为你最好先不排序地显示列表项。这是动画的起点。
假设jsonData是你的API响应,在看到你的JSON数据后,我在一个简单的HTML模板中添加了代码进行测试。我添加了模拟JSON数据变化的按钮(或者换句话说,新数据的到来)。它现在正在工作并显示动画。
字符串
你应该尝试实现一个类似的方法,当你的JSON数据发生变化时,点击这里的按钮的事件被触发。为了能够测试它,我在一个示例HTML模板中添加了脚本,但你可以将其更改为
.cshtml
。