Commit 0d580d00 by Valera Rozuvan

Fine grain control of when to show the range.

Also moved all static styling to SCSS.
parent d0fbd502
...@@ -139,6 +139,24 @@ div.video { ...@@ -139,6 +139,24 @@ div.video {
box-shadow: inset 0 1px 0 #999; box-shadow: inset 0 1px 0 #999;
} }
div.ui-corner-all.slider-range {
background-color: #1e91d3;
/* We add opacity so that we can discern the amount of video that has
* been played. The progress will advance as a gray-shaded area. When
* it will overlap with the range, you will see a different shade of
* the range for part that has been played, and for part that is
* still to be played.
*
* For CSS opacity, different browsers are handled differently.
*/
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
-moz-opacity: 0.3;
-khtml-opacity: 0.3;
opacity: 0.3;
}
a.ui-slider-handle { a.ui-slider-handle {
background: $pink url(../images/slider-handle.png) center center no-repeat; background: $pink url(../images/slider-handle.png) center center no-repeat;
background-size: 50%; background-size: 50%;
......
...@@ -86,8 +86,6 @@ function () { ...@@ -86,8 +86,6 @@ function () {
// *************************************************************** // ***************************************************************
function buildSlider(state) { function buildSlider(state) {
console.log('state = ', state);
state.videoProgressSlider.slider = state.videoProgressSlider.el state.videoProgressSlider.slider = state.videoProgressSlider.el
.slider({ .slider({
range: 'min', range: 'min',
...@@ -101,26 +99,42 @@ function () { ...@@ -101,26 +99,42 @@ function () {
} }
function updateStartEndTimeRegion(params) { function updateStartEndTimeRegion(params) {
var left, width; var left, width, start, end;
if (this.config.end && params.duration) { // We must have a duration in order to determine the area of range.
left = parseInt(100 * (this.config.start / params.duration), 10); // It also must be non-zero.
width = parseInt( if (!params.duration) {
100 * ( return;
(this.config.end - this.config.start) / params.duration }
),
10 // If the range spans the entire length of video, we don't do anything.
); if (!this.config.start && !this.config.end) {
return;
}
start = this.config.start;
// If end is set to null, then we set it to the end of the video. We
// know that start is not a the beginning, therefore we must build a
// range.
if (!this.config.end) {
end = params.duration;
} else {
end = this.config.end;
}
left = parseInt(100 * (start / params.duration), 10);
width = parseInt(100 * ((end - start) / params.duration), 10);
if (!this.videoProgressSlider.sliderRange) { if (!this.videoProgressSlider.sliderRange) {
this.videoProgressSlider.sliderRange = $('<div />') this.videoProgressSlider.sliderRange = $('<div />')
.addClass('ui-slider-range') .addClass('ui-slider-range')
.addClass('ui-widget-header') .addClass('ui-widget-header')
.addClass('ui-corner-all') .addClass('ui-corner-all')
.addClass('slider-range')
.css({ .css({
left: left + '%', left: left + '%',
width: width + '%', width: width + '%'
'background-color': 'blue'
}); });
this.videoProgressSlider.sliderProgress this.videoProgressSlider.sliderProgress
...@@ -133,7 +147,6 @@ function () { ...@@ -133,7 +147,6 @@ function () {
}); });
} }
} }
}
function onSlide(event, ui) { function onSlide(event, ui) {
this.videoProgressSlider.frozen = true; this.videoProgressSlider.frozen = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment