c# - 如果该位置已经有另一个绝对位置,可以移动绝对位置吗?

我正在尝试在我的网站上做一个日历。因此,在我的C#代码中,我为该日历创建了所有表格单元(我将其作为html字符串返回给View)。在执行此操作时,我检查数据库以查看是否有任何任务进入该单元格并循环遍历该单元格,直到没有剩余任务为止。然后,我移至下一个单元,然后再次执行相同的操作。

但是,有些任务跨越一天,因此,当我生成任务时,我会弄清楚它跨越了多少天,并通过放置一个宽度达到表单元数目的宽度来围绕任务跨越整个日子创建一个div。

但是,为了显示跨越多个天的div,我必须使所有这些div具有CSS绝对值。否则,由于我正在使用“ css溢出”,因此将隐藏不适合该单元格的所有内容,因此,如果我在此div上具有背景色,则它将仅显示该单元格的背景色,因为其余的部分将被隐藏。因此,即使宽度足够长,它也始终隐藏在下面。

因此,通过使用“ css absolute”,同一单元中的所有任务只会彼此堆积在一起。我发现,如果在每个div上都放一个margin-top,就可以避免这种堆积。但是,这不会帮助我解决下一个问题。

假设我的任务跨度从1月1日到1月2日的2天。它的宽度恰好跨2个单元格。

由于该div设置了绝对值,因此跨越了2天。

http://img35.imageshack.us/img35/3808/screenshot001mo.jpg

此图显示了如果持续2天,它将看起来如何。

现在他们去向1月2日添加另一个任务。该任务将被放置在跨越1月1日和1月2日的任务的黄色背景的正上方,因此不再明显地看到1月1日的任务跨越了1月2日。

http://img35.imageshack.us/img35/806/screenshot002ml.jpg

此图显示我在1月2日添加了另一个任务。因此发生了重叠,很难说第一个任务跨越2天。现在想象一下,如果您必须在相同的2天中完成2个任务。

因此,我需要某种方式来检测这些碰撞或某些物体,以便在某些物体占据该空间时将其向下移动。

我希望这是有道理的

您可以看到这个jquery插件,在此之后我将对我进行建模。他们有些任务如何彼此不重叠。

http://arshaw.com/fullcalendar/

我正在使用以下内容:


ASP.NET MVC
C#
jQuery的
html
的CSS

最佳答案

这是困难的一个。

如果使用绝对位置,则在绝对位置上工作时,无法使事物自动转移到另一个位置。

您可以作弊,使其全部重叠并使用透明胶片(不透明度为50%)和z-index。期间重叠时,它们会闪耀。然后,您可以为每个时间段提供一个onclick事件,该事件将小节的z-index置于后台一步,以实现一种非常原始的混洗。非常粗略:

<div class="period" onclick="this.style.zIndex = this.style.zIndex-2;">1 Day span</div>


您将必须实现一种机制来处理z索引会不断下降到零以下这一事实,因此这只是一个非常粗糙的轮廓。

就用户体验而言,这不是很好,但可以完成工作,并且用户仍然可以访问所有信息。

如果您想正确执行此操作,我想您将无法跟踪每一行当前的“畅通无阻的车道”,即有多少个行驶周期以及需要多少来调整起始y位置新时期。

另一种更简单的方法不是使用绝对定位,而是在跨整行的容器中使用常规的工厂div。编辑:但是,当一个期间跨越多行时,这将给您带来麻烦。不,您不会自己计算位置。

本文翻译自 https://stackoverflow.com/questions/1989422/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 c# jquery asp.net-mvc css


相关文章:

c# - 身份框架GenerateUserToken验证问题

c# - XmlTextReader问题

c# - C#图像在另一个图像上

c# - 在XML中加扰文本元素

c# - 异步填充c#词典

c# - 获得证明“写入记录器时发生错误”

c# - C#Windows服务process.start

c# - 当文字超过一定长度时,将文字换行到下一行吗?

c# - 动画边框控件的宽度

c# - Windows Mobile 6.5现代GUI开发