@@ -122,6 +122,8 @@ this.createScrolledChart = (variable) ->
122122
123123 filmHandleLeftDraggable = false
124124 filmHandleRightDraggable = false
125+ filmDraggable = false
126+ filmPressedAt = false
125127
126128 elem =
127129 filmBackdrop : $ (" <div id='film-backdrop'></div>" ),
@@ -136,20 +138,32 @@ this.createScrolledChart = (variable) ->
136138 elem .filmBackdrop .append (elem .film .append (elem .filmHandleLeft .append (elem .filmLabelContainerLeft .append (elem .filmLabelLeft )))
137139 .append (elem .filmHandleRight .append (elem .filmLabelContainerRight .append (elem .filmLabelRight ))))
138140
139- elem .filmHandleLeft .mousedown (() ->
141+ elem .filmHandleLeft .mousedown ((event ) ->
142+ event .preventDefault ()
140143 filmHandleLeftDraggable = true
141144 elem .filmLabelLeft .css (' visibility' , ' visible' )
145+ false
142146 )
143147
144- elem .filmHandleRight .mousedown (() ->
148+ elem .filmHandleRight .mousedown ((event ) ->
149+ event .preventDefault ()
145150 filmHandleRightDraggable = true
146151 elem .filmLabelRight .css (' visibility' , ' visible' )
152+ false
153+ )
154+
155+ elem .film .mousedown ((event ) ->
156+ event .preventDefault ()
157+ filmDraggable = true
158+ filmPressedAt = event .pageX - $ (this ).offset ().left
147159 )
148160
149161 $ (document ).mouseup (() ->
150- if filmHandleLeftDraggable or filmHandleRightDraggable
162+ if filmHandleLeftDraggable or filmHandleRightDraggable or filmDraggable
151163 filmHandleLeftDraggable = false
152164 filmHandleRightDraggable = false
165+ filmDraggable = false
166+ console .debug (filmDraggable)
153167 elem .filmLabelLeft .css (' visibility' , ' hidden' )
154168 elem .filmLabelRight .css (' visibility' , ' hidden' )
155169 redrawMainChart (dateOnScroll (elem .film .position ().left ),
@@ -159,6 +173,7 @@ this.createScrolledChart = (variable) ->
159173 onMouseMove = (event ) ->
160174 minHandleDistance = 10
161175 newX = event .pageX - elem .film .offsetParent ().offset ().left
176+ console .debug (filmDraggable)
162177 if filmHandleLeftDraggable and newX < - minHandleDistance + elem .film .position ().left + elem .film .outerWidth () - elem .filmHandleLeft .width () - elem .filmHandleRight .width ()
163178 newX = Math .max (newX, 0 )
164179 elem .film .css (' width' , elem .film .outerWidth () - newX + parseInt (elem .film .css (' left' )), 10 )
@@ -168,6 +183,11 @@ this.createScrolledChart = (variable) ->
168183 newX = Math .min (newX, elem .film .offsetParent ().width ())
169184 elem .film .css (' width' , newX - elem .film .position ().left )
170185 elem .filmLabelRight .html (scrollLabelDate (dateOnScroll (newX)))
186+ else if filmDraggable
187+ newX = newX - filmPressedAt
188+ newX = Math .min (Math .max (newX, 0 ),
189+ elem .film .offsetParent ().width () - elem .film .width ())
190+ elem .film .css (' left' , newX)
171191
172192 $ (document ).mousemove (onMouseMove)
173193
0 commit comments