Javascript 试图找出如何处理周视图日历中的事件重叠?
我试图找出如何处理日历事件重叠的方式谷歌日历做它。 我有一系列带有开始和结束日期的事件 目前,我将整个数组按从最早到最晚的顺序排序,然后找出一个事件重叠了多少次以及另一个事件重叠了多少次。我不确定该从这里走到哪里,我觉得我可以使用这些值来计算正确的css宽度%和左%。我走对了吗??我是作为一个学校项目来做的。提前谢谢你 编辑:我看了马库斯·贾德罗以前回答过的类似问题,找到了我想要的答案。非常感谢你Javascript 试图找出如何处理周视图日历中的事件重叠?,javascript,calendar,Javascript,Calendar,我试图找出如何处理日历事件重叠的方式谷歌日历做它。 我有一系列带有开始和结束日期的事件 目前,我将整个数组按从最早到最晚的顺序排序,然后找出一个事件重叠了多少次以及另一个事件重叠了多少次。我不确定该从这里走到哪里,我觉得我可以使用这些值来计算正确的css宽度%和左%。我走对了吗??我是作为一个学校项目来做的。提前谢谢你 编辑:我看了马库斯·贾德罗以前回答过的类似问题,找到了我想要的答案。非常感谢你 function getOverlappingEvents(eventArray) { var r
function getOverlappingEvents(eventArray) {
var result = [];
eventArray.sort(function(a, b) {
return a.eventStart - b.eventStart;
});
for (var i = 0; i < eventArray.length; i++) {
var overapped = 0;
var overlaps = 0;
var isdate = new Date(eventArray[i].eventStart);
var iedate = new Date(eventArray[i].eventEnd);
for (var x = 0; x < eventArray.length; x++) {
var xsdate = new Date(eventArray[x].eventStart);
var xedate = new Date(eventArray[x].eventEnd);
if(isdate <= xsdate && iedate > xsdate){
overapped++;
}else if(isdate >= xsdate && isdate < xedate){
overlaps++;
}
}
result.push([eventArray[i].calEventID, overapped, overlaps]);
}
return result;
}
}可能存在的副本
function toDom(events, ids){
var domEvents = [];
for (var i = 0; i < events.length; i++) {
var id = events[i].calEventID;
var width = 0;
var left = 0;
var sDate = new Date(events[i].eventStart);
var eDate = new Date(events[i].eventEnd);
var time = sDate.format("htt") + " - " + eDate.format("htt");
var duration = (eDate.getHours() * 60 + eDate.getMinutes()) - (sDate.getHours() * 60 + sDate.getMinutes());
var height = Math.round((duration * 0.75));
var topOffSet = (sDate.getHours() - 6) * 45 + Math.round(sDate.getMinutes() * 0.75);
var status = events[i].calStatus;
var desc = events[i].description;
var json = {id: id, sDate: sDate, eDate: eDate, status: status, height: height+"px", top: topOffSet+"px", width: width+"%", left: left+"%", desc: desc, time: time};
console.log(json);
domEvents.push(json);
}
return domEvents;