2016-12-14 45 views

回答

1

我能想到的解决这个问题的唯一办法是插入div元素为div.k-scheduler-times使用jQuery:

$("<div class='new-time-marker'></div>").prependTo("tr:nth-child(2) .k-scheduler-times"); 

您可以设置它的风格与CSS属性类似的常规标记。该位置可以根据调度程序的属性进行计算,然后应用于此div

您可以在调度程序加载后添加时间标记。例如,如果使用文档中出现的方法 - $("#scheduler").kendoScheduler({...});,则可以在该块之后添加时间标记。

要设置时间标记的顶值,你可以用百分比,你可以计算出:

$(".new-time-marker").css("top", ((9*60+22)*100/(24*60)) + "%"); 

在这个例子中,标记将出现在9:22。你也可以这样来做,当然:

$(".new-time-marker").css("top", ((9+22/60)*100/24) + "%"); 

添加造型像这样的:

.new-time-marker { 
    width: 0px; 
    height: 0px; 
    border: 6px solid transparent; 
    border-left-color: blue; 
    position: absolute; 
    transform: translateY(-6px); 
} 

变换将确保标记的中心是正确的,你把它指向。

+0

嘿嘿,太好了!它运作良好,但还有一些方面可以锻造整个解决方案:1)何时添加时间标记? 2)如何计算其“最高”值? –

+0

我已经实现了一个实现所有细节的AngularJS指令。希望它会有所帮助 - https://gist.github.com/nedyalkov/15ca8b3d8431464cc843b4e9ff57271d –

+0

这是一个很好的解决方案!我在这里在dojo中实现了一个示例:http://dojo.telerik.com/oWeSi/13 在dataBound事件中预先标记标记,以便它始终显示(如果可能需要),但使用调度表表格槽来确定其偏移位置。我在Dojo中遇到了麻烦,因为它在9点40分左右而不是9点22分。 –