我有一个页面,用户必须从屏幕上其他位置的某个区域拖动项目。对剩余项目进行计数以计算百分比
当所有项目都被拖出 - 完成100%的任务。
我想计算每次拖放操作(当某个项目被拖出灰色区域时)完成的任务的百分比。
如何计算一个区域内的剩余物品?
如何转换为百分比?
我应该计算每个项目的价值在页面加载的百分比,然后减去?
我有一个页面,用户必须从屏幕上其他位置的某个区域拖动项目。对剩余项目进行计数以计算百分比
当所有项目都被拖出 - 完成100%的任务。
我想计算每次拖放操作(当某个项目被拖出灰色区域时)完成的任务的百分比。
如何计算一个区域内的剩余物品?
如何转换为百分比?
我应该计算每个项目的价值在页面加载的百分比,然后减去?
基于克里斯五月的评论,试试这个:
var startCount = $("#launchPad .card").length;
$(".stack").bind("drop", function(event, ui) {
var currentCount = startCount - $("#launchPad .card").length + 1;
alert(currentCount/startCount * 100 + "%");
});
这因为从0%的首次下降至100%
小提琴从这里开始:http://jsfiddle.net/qQdZy/
编辑: 这应该解决问题:)
var startCount = $("#launchPad .card").length;
$(".stack").bind("drop", function(event, ui) {
var currentCount = startCount - $("#launchPad .card").length;
if (currentCount != startCount)
currentCount++;
alert(currentCount/startCount * 100 + "%");
});
新小提琴:http://jsfiddle.net/qQdZy/1/
新的编辑: 好吧,我已经改变了我的解决方案。在这里它的工作原理:
var startCount = $("#launchPad .card").length;
var moveFromLaunch = false;
$(".card").bind("dragstart", function(event, ui) {
moveFromLaunch = true;
});
$(".stack").bind("drop", function(event, ui) {
var currentCount = $("#launchPad .card").length;
if (moveFromLaunch)
currentCount--;
currentCount = startCount - currentCount;
moveFromLaunch = false;
alert(currentCount/startCount * 100 + "%");
});
像这样的东西应该工作。
$(document).ready(function(){
var startCount = $('#launchPad .card').length,
$("#dropZone").bind("drop", function(event, ui) {
var currentCount = $('#launchPad .card').length;
alert(currentCount/startCount);
});
});
丢弃事件触发Droppables(“框”),而不是Draggables(“卡”)。 – 2011-06-09 21:13:16
酷!在PHP中,我可以通过doo floor或ceil来取得结果,这样的事情可以在jQuery中完成吗?我不想处理小数...... – santa 2011-06-09 21:15:33
Math.floor(x)Math.ceil(x) – 2011-06-09 22:05:31
“对不起,看来你已经参加了本次可用性测试。” - 这么多回去评估代码... – Niklas 2011-06-09 20:49:10
哈哈同样在这里。 – Andy 2011-06-09 20:55:25
哎呀,对不起。测试了一些东西并且意外地离开了。请再试一次。 – santa 2011-06-09 21:02:29