2016-12-14 6 views

答えて

1

私はこれを達成すると考えることができる唯一の方法は、jQueryのを使用してdiv.k-scheduler-timesdiv要素を挿入します

$("<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) + "%"); 

は、この1のようなスタイルを追加します。

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

あなたがそれを指摘どこマーカの中心が右であることを確認します変換します。

+0

Hey Shai、それは素晴らしいです!それはうまくいきますが、ソリューション全体を鍛えるいくつかの側面があります:1)いつタイムマーカーを追加するべきですか? 2)その "トップ"値を計算する方法? –

+0

私はすべての詳細を実装するAngularJS指令を実装しました。希望すると助かります - https://gist.github.com/nedyalkov/15ca8b3d8431464cc843b4e9ff57271d –

+0

これは素晴らしい解決策です!私は道場での例をここに実装しました:http://dojo.telerik.com/oWeSi/13 これは、dataBoundイベントにマーカを付加するので、常に必要になる場合があります。スケジューラテーブルスロットを使用してそのオフセット位置を決定する。 9時22分ではなく9時40分に計算をしていたので、答えの計算で道場に問題がありました。 –

関連する問題