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,37 +99,52 @@ function () { ...@@ -101,37 +99,52 @@ 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;
if (!this.videoProgressSlider.sliderRange) { }
this.videoProgressSlider.sliderRange = $('<div />')
.addClass('ui-slider-range') start = this.config.start;
.addClass('ui-widget-header')
.addClass('ui-corner-all') // If end is set to null, then we set it to the end of the video. We
.css({ // know that start is not a the beginning, therefore we must build a
left: left + '%', // range.
width: width + '%', if (!this.config.end) {
'background-color': 'blue' end = params.duration;
}); } else {
end = this.config.end;
this.videoProgressSlider.sliderProgress }
.after(this.videoProgressSlider.sliderRange);
} else { left = parseInt(100 * (start / params.duration), 10);
this.videoProgressSlider.sliderRange width = parseInt(100 * ((end - start) / params.duration), 10);
.css({
left: left + '%', if (!this.videoProgressSlider.sliderRange) {
width: width + '%' this.videoProgressSlider.sliderRange = $('<div />')
}); .addClass('ui-slider-range')
} .addClass('ui-widget-header')
.addClass('ui-corner-all')
.addClass('slider-range')
.css({
left: left + '%',
width: width + '%'
});
this.videoProgressSlider.sliderProgress
.after(this.videoProgressSlider.sliderRange);
} else {
this.videoProgressSlider.sliderRange
.css({
left: left + '%',
width: width + '%'
});
} }
} }
......
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