Last active
August 29, 2015 14:04
-
-
Save acanimal/5df8f46792ce3713b892 to your computer and use it in GitHub Desktop.
OL3+BT test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* ========================================================= | |
* bootstrap-slider.js v2.0.0 | |
* http://www.eyecon.ro/bootstrap-slider | |
* ========================================================= | |
* Copyright 2012 Stefan Petre | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
* ========================================================= */ | |
!function( $ ) { | |
var Slider = function(element, options) { | |
this.element = $(element); | |
this.picker = $('<div class="slider">'+ | |
'<div class="slider-track">'+ | |
'<div class="slider-selection"></div>'+ | |
'<div class="slider-handle"></div>'+ | |
'<div class="slider-handle"></div>'+ | |
'</div>'+ | |
'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'+ | |
'</div>') | |
.insertBefore(this.element) | |
.append(this.element); | |
this.id = this.element.data('slider-id')||options.id; | |
if (this.id) { | |
this.picker[0].id = this.id; | |
} | |
if (typeof Modernizr !== 'undefined' && Modernizr.touch) { | |
this.touchCapable = true; | |
} | |
var tooltip = this.element.data('slider-tooltip')||options.tooltip; | |
this.tooltip = this.picker.find('.tooltip'); | |
this.tooltipInner = this.tooltip.find('div.tooltip-inner'); | |
this.orientation = this.element.data('slider-orientation')||options.orientation; | |
switch(this.orientation) { | |
case 'vertical': | |
this.picker.addClass('slider-vertical'); | |
this.stylePos = 'top'; | |
this.mousePos = 'pageY'; | |
this.sizePos = 'offsetHeight'; | |
this.tooltip.addClass('right')[0].style.left = '100%'; | |
break; | |
default: | |
this.picker | |
.addClass('slider-horizontal') | |
.css('width', this.element.outerWidth()); | |
this.orientation = 'horizontal'; | |
this.stylePos = 'left'; | |
this.mousePos = 'pageX'; | |
this.sizePos = 'offsetWidth'; | |
this.tooltip.addClass('top')[0].style.top = -this.tooltip.outerHeight() - 14 + 'px'; | |
break; | |
} | |
this.min = this.element.data('slider-min')||options.min; | |
this.max = this.element.data('slider-max')||options.max; | |
this.step = this.element.data('slider-step')||options.step; | |
this.value = this.element.data('slider-value')||options.value; | |
if (this.value[1]) { | |
this.range = true; | |
} | |
this.selection = this.element.data('slider-selection')||options.selection; | |
this.selectionEl = this.picker.find('.slider-selection'); | |
if (this.selection === 'none') { | |
this.selectionEl.addClass('hide'); | |
} | |
this.selectionElStyle = this.selectionEl[0].style; | |
this.handle1 = this.picker.find('.slider-handle:first'); | |
this.handle1Stype = this.handle1[0].style; | |
this.handle2 = this.picker.find('.slider-handle:last'); | |
this.handle2Stype = this.handle2[0].style; | |
var handle = this.element.data('slider-handle')||options.handle; | |
switch(handle) { | |
case 'round': | |
this.handle1.addClass('round'); | |
this.handle2.addClass('round'); | |
break | |
case 'triangle': | |
this.handle1.addClass('triangle'); | |
this.handle2.addClass('triangle'); | |
break | |
} | |
if (this.range) { | |
this.value[0] = Math.max(this.min, Math.min(this.max, this.value[0])); | |
this.value[1] = Math.max(this.min, Math.min(this.max, this.value[1])); | |
} else { | |
this.value = [ Math.max(this.min, Math.min(this.max, this.value))]; | |
this.handle2.addClass('hide'); | |
if (this.selection == 'after') { | |
this.value[1] = this.max; | |
} else { | |
this.value[1] = this.min; | |
} | |
} | |
this.diff = this.max - this.min; | |
this.percentage = [ | |
(this.value[0]-this.min)*100/this.diff, | |
(this.value[1]-this.min)*100/this.diff, | |
this.step*100/this.diff | |
]; | |
this.offset = this.picker.offset(); | |
this.size = this.picker[0][this.sizePos]; | |
this.formater = options.formater; | |
this.layout(); | |
if (this.touchCapable) { | |
// Touch: Bind touch events: | |
this.picker.on({ | |
touchstart: $.proxy(this.mousedown, this) | |
}); | |
} else { | |
this.picker.on({ | |
mousedown: $.proxy(this.mousedown, this) | |
}); | |
} | |
if (tooltip === 'show') { | |
this.picker.on({ | |
mouseenter: $.proxy(this.showTooltip, this), | |
mouseleave: $.proxy(this.hideTooltip, this) | |
}); | |
} else { | |
this.tooltip.addClass('hide'); | |
} | |
}; | |
Slider.prototype = { | |
constructor: Slider, | |
over: false, | |
inDrag: false, | |
showTooltip: function(){ | |
this.tooltip.addClass('in'); | |
//var left = Math.round(this.percent*this.width); | |
//this.tooltip.css('left', left - this.tooltip.outerWidth()/2); | |
this.over = true; | |
}, | |
hideTooltip: function(){ | |
if (this.inDrag === false) { | |
this.tooltip.removeClass('in'); | |
} | |
this.over = false; | |
}, | |
layout: function(){ | |
this.handle1Stype[this.stylePos] = this.percentage[0]+'%'; | |
this.handle2Stype[this.stylePos] = this.percentage[1]+'%'; | |
if (this.orientation == 'vertical') { | |
this.selectionElStyle.top = Math.min(this.percentage[0], this.percentage[1]) +'%'; | |
this.selectionElStyle.height = Math.abs(this.percentage[0] - this.percentage[1]) +'%'; | |
} else { | |
this.selectionElStyle.left = Math.min(this.percentage[0], this.percentage[1]) +'%'; | |
this.selectionElStyle.width = Math.abs(this.percentage[0] - this.percentage[1]) +'%'; | |
} | |
if (this.range) { | |
this.tooltipInner.text( | |
this.formater(this.value[0]) + | |
' : ' + | |
this.formater(this.value[1]) | |
); | |
this.tooltip[0].style[this.stylePos] = this.size * (this.percentage[0] + (this.percentage[1] - this.percentage[0])/2)/100 - (this.orientation === 'vertical' ? this.tooltip.outerHeight()/2 : this.tooltip.outerWidth()/2) +'px'; | |
} else { | |
this.tooltipInner.text( | |
this.formater(this.value[0]) | |
); | |
this.tooltip[0].style[this.stylePos] = this.size * this.percentage[0]/100 - (this.orientation === 'vertical' ? this.tooltip.outerHeight()/2 : this.tooltip.outerWidth()/2) +'px'; | |
} | |
}, | |
mousedown: function(ev) { | |
// Touch: Get the original event: | |
if (this.touchCapable && ev.type === 'touchstart') { | |
ev = ev.originalEvent; | |
} | |
this.offset = this.picker.offset(); | |
this.size = this.picker[0][this.sizePos]; | |
var percentage = this.getPercentage(ev); | |
if (this.range) { | |
var diff1 = Math.abs(this.percentage[0] - percentage); | |
var diff2 = Math.abs(this.percentage[1] - percentage); | |
this.dragged = (diff1 < diff2) ? 0 : 1; | |
} else { | |
this.dragged = 0; | |
} | |
this.percentage[this.dragged] = percentage; | |
this.layout(); | |
if (this.touchCapable) { | |
// Touch: Bind touch events: | |
$(document).on({ | |
touchmove: $.proxy(this.mousemove, this), | |
touchend: $.proxy(this.mouseup, this) | |
}); | |
} else { | |
$(document).on({ | |
mousemove: $.proxy(this.mousemove, this), | |
mouseup: $.proxy(this.mouseup, this) | |
}); | |
} | |
this.inDrag = true; | |
var val = this.calculateValue(); | |
this.element.trigger({ | |
type: 'slideStart', | |
value: val | |
}).trigger({ | |
type: 'slide', | |
value: val | |
}); | |
return false; | |
}, | |
mousemove: function(ev) { | |
// Touch: Get the original event: | |
if (this.touchCapable && ev.type === 'touchmove') { | |
ev = ev.originalEvent; | |
} | |
var percentage = this.getPercentage(ev); | |
if (this.range) { | |
if (this.dragged === 0 && this.percentage[1] < percentage) { | |
this.percentage[0] = this.percentage[1]; | |
this.dragged = 1; | |
} else if (this.dragged === 1 && this.percentage[0] > percentage) { | |
this.percentage[1] = this.percentage[0]; | |
this.dragged = 0; | |
} | |
} | |
this.percentage[this.dragged] = percentage; | |
this.layout(); | |
var val = this.calculateValue(); | |
this.element | |
.trigger({ | |
type: 'slide', | |
value: val | |
}) | |
.data('value', val) | |
.prop('value', val); | |
return false; | |
}, | |
mouseup: function(ev) { | |
if (this.touchCapable) { | |
// Touch: Bind touch events: | |
$(document).off({ | |
touchmove: this.mousemove, | |
touchend: this.mouseup | |
}); | |
} else { | |
$(document).off({ | |
mousemove: this.mousemove, | |
mouseup: this.mouseup | |
}); | |
} | |
this.inDrag = false; | |
if (this.over == false) { | |
this.hideTooltip(); | |
} | |
this.element; | |
var val = this.calculateValue(); | |
this.element | |
.trigger({ | |
type: 'slideStop', | |
value: val | |
}) | |
.data('value', val) | |
.prop('value', val); | |
return false; | |
}, | |
calculateValue: function() { | |
var val; | |
if (this.range) { | |
val = [ | |
(this.min + Math.round((this.diff * this.percentage[0]/100)/this.step)*this.step), | |
(this.min + Math.round((this.diff * this.percentage[1]/100)/this.step)*this.step) | |
]; | |
this.value = val; | |
} else { | |
val = (this.min + Math.round((this.diff * this.percentage[0]/100)/this.step)*this.step); | |
this.value = [val, this.value[1]]; | |
} | |
return val; | |
}, | |
getPercentage: function(ev) { | |
if (this.touchCapable) { | |
ev = ev.touches[0]; | |
} | |
var percentage = (ev[this.mousePos] - this.offset[this.stylePos])*100/this.size; | |
percentage = Math.round(percentage/this.percentage[2])*this.percentage[2]; | |
return Math.max(0, Math.min(100, percentage)); | |
}, | |
getValue: function() { | |
if (this.range) { | |
return this.value; | |
} | |
return this.value[0]; | |
}, | |
setValue: function(val) { | |
this.value = val; | |
if (this.range) { | |
this.value[0] = Math.max(this.min, Math.min(this.max, this.value[0])); | |
this.value[1] = Math.max(this.min, Math.min(this.max, this.value[1])); | |
} else { | |
this.value = [ Math.max(this.min, Math.min(this.max, this.value))]; | |
this.handle2.addClass('hide'); | |
if (this.selection == 'after') { | |
this.value[1] = this.max; | |
} else { | |
this.value[1] = this.min; | |
} | |
} | |
this.diff = this.max - this.min; | |
this.percentage = [ | |
(this.value[0]-this.min)*100/this.diff, | |
(this.value[1]-this.min)*100/this.diff, | |
this.step*100/this.diff | |
]; | |
this.layout(); | |
} | |
}; | |
$.fn.slider = function ( option, val ) { | |
return this.each(function () { | |
var $this = $(this), | |
data = $this.data('slider'), | |
options = typeof option === 'object' && option; | |
if (!data) { | |
$this.data('slider', (data = new Slider(this, $.extend({}, $.fn.slider.defaults,options)))); | |
} | |
if (typeof option == 'string') { | |
data[option](val); | |
} | |
}) | |
}; | |
$.fn.slider.defaults = { | |
min: 0, | |
max: 10, | |
step: 1, | |
orientation: 'horizontal', | |
value: 5, | |
selection: 'before', | |
tooltip: 'show', | |
handle: 'round', | |
formater: function(value) { | |
return value; | |
} | |
}; | |
$.fn.slider.Constructor = Slider; | |
}( window.jQuery ); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="chrome=1"> | |
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> | |
<link rel="stylesheet" href="http://ol3js.org/en/master/css/ol.css"> | |
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> | |
<title>ImageCanvas example</title> | |
<!-- Sample style --> | |
<style> | |
html, body { | |
width: 100%; | |
height: 100%; | |
} | |
.map { | |
height: 500px; | |
margin: 5px auto; | |
} | |
.map { | |
box-shadow: 5px 5px 5px #888; | |
} | |
.code { | |
overflow: auto; | |
} | |
#mapTab { | |
padding-top: 10px; | |
} | |
ul.layerstack { | |
list-style: none; | |
} | |
ul.layerstack li { | |
border-bottom: 1px solid #ccc; | |
padding: 3px; | |
} | |
ul.layerstack li:hover { | |
background-color: #eee; | |
} | |
ul.layerstack li.selected { | |
background-color: #ddd; | |
} | |
</style> | |
<!-- CSS and JS code for the tree extracted from http://stackoverflow.com/questions/11167628/trees-in-twitter-bootstrap --> | |
<style> | |
.tree { | |
min-height:20px; | |
/*max-height: 150px;*/ | |
overflow: auto; | |
padding: 3px; | |
margin-bottom:5px; | |
-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); | |
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); | |
box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05) | |
} | |
.tree li { | |
list-style-type:none; | |
margin:0; | |
padding:10px 5px 10px 5px; | |
position:relative; | |
/* -moz-border-radius:5px; | |
-webkit-border-radius:5px; | |
border:1px solid #999; | |
border-radius:5px;*/ | |
} | |
.tree li::before, .tree li::after { | |
content:''; | |
left:-20px; | |
position:absolute; | |
right:auto | |
} | |
.tree li::before { | |
border-left:1px solid #999; | |
bottom:50px; | |
height:100%; | |
top:0; | |
width:1px | |
} | |
.tree li::after { | |
border-top:1px solid #999; | |
height:20px; | |
top:25px; | |
width:25px | |
} | |
.tree li span { | |
display:inline-block; | |
padding:3px 8px; | |
text-decoration:none | |
} | |
.tree li.parent_li>span { | |
cursor:pointer | |
} | |
.tree>ul>li::before, .tree>ul>li::after { | |
border:0 | |
} | |
.tree li:last-child::before { | |
height:30px | |
} | |
.tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span { | |
background:#eee; | |
border:1px solid #94a0b4; | |
color:#000; | |
-moz-border-radius:5px; | |
-webkit-border-radius:5px; | |
border-radius:5px; | |
} | |
</style> | |
<!-- Slider control from http://www.eyecon.ro/bootstrap-slider/ --> | |
<link rel="stylesheet" href="utils/slider/css/slider.css" type="text/css"> | |
</head> | |
<body> | |
<div class="container-fluid"> | |
<div class="row"> | |
<div class="col-md-4 col-xs-4"> | |
<div id="layertree" class="tree"></div> | |
</div> | |
<div class="col-md-8 col-xs-8"> | |
<div id="map" class="map"></div> | |
</div> | |
</div> | |
</div> | |
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> | |
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> | |
<script src="http://ol3js.org/en/master/build/ol-debug.js"></script> | |
<!-- Slider control --> | |
<script src="utils/slider/js/bootstrap-slider.js"></script> | |
<!-- Sample code --> | |
<script id="sample_code"> | |
// Create layers instances | |
var layerOSM = new ol.layer.Tile({ | |
source: new ol.source.OSM(), | |
name: 'OpenStreetMap' | |
}); | |
var layerMQ = new ol.layer.Tile({ | |
source: new ol.source.MapQuest({ | |
layer: 'osm' | |
}), | |
name: 'MapQuest' | |
}); | |
var layerStamenWater = new ol.layer.Tile({ | |
source: new ol.source.Stamen({ | |
layer: 'watercolor' | |
}), | |
name: 'Watercolor' | |
}); | |
var layerStamenTerrain = new ol.layer.Tile({ | |
source: new ol.source.Stamen({ | |
layer: 'terrain' | |
}), | |
name: 'Terrain' | |
}); | |
var layerStm = new ol.layer.Group({ | |
layers: [layerStamenWater, layerStamenTerrain], | |
name: 'Stamen Group' | |
}); | |
// Create map | |
var map = new ol.Map({ | |
// The DOM element that will contains the map | |
target: 'map', | |
// Set of layers | |
layers: [layerOSM, layerMQ, layerStm], | |
// The view to be used to show the map is a 2D | |
view: new ol.View({ | |
center: ol.proj.transform([-100.1833, 41.3833], 'EPSG:4326', 'EPSG:3857'), | |
zoom: 4 | |
}) | |
}); | |
// Name the root layer group | |
map.getLayerGroup().set('name', 'Root'); | |
/** | |
* Build a tree layer from the map layers with visible and opacity | |
* options. | |
* | |
* @param {type} layer | |
* @returns {String} | |
*/ | |
function buildLayerTree(layer) { | |
var elem; | |
var name = layer.get('name') ? layer.get('name') : "Group"; | |
var div = "<li data-layerid='" + name + "'>" + | |
"<span><i class='glyphicon glyphicon-file'></i> " + layer.get('name') + "</span>" + | |
"<i class='glyphicon glyphicon-check'></i> " + | |
"<input style='width:80px;' class='opacity' type='text' value='' data-slider-min='0' data-slider-max='1' data-slider-step='0.1' data-slider-tooltip='hide'>"; | |
if (layer.getLayers) { | |
var sublayersElem = ''; | |
var layers = layer.getLayers().getArray(), | |
len = layers.length; | |
for (var i = len - 1; i >= 0; i--) { | |
sublayersElem += buildLayerTree(layers[i]); | |
} | |
elem = div + " <ul>" + sublayersElem + "</ul></li>"; | |
} else { | |
elem = div + " </li>"; | |
} | |
return elem; | |
} | |
/** | |
* Initialize the tree from the map layers | |
* @returns {undefined} | |
*/ | |
function initializeTree() { | |
var elem = buildLayerTree(map.getLayerGroup()); | |
$('#layertree').empty().append(elem); | |
$('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch'); | |
$('.tree li.parent_li > span').on('click', function(e) { | |
var children = $(this).parent('li.parent_li').find(' > ul > li'); | |
if (children.is(":visible")) { | |
children.hide('fast'); | |
$(this).attr('title', 'Expand this branch').find(' > i').addClass('glyphicon-plus').removeClass('glyphicon-minus'); | |
} else { | |
children.show('fast'); | |
$(this).attr('title', 'Collapse this branch').find(' > i').addClass('glyphicon-minus').removeClass('glyphicon-plus'); | |
} | |
e.stopPropagation(); | |
}); | |
} | |
/** | |
* Finds recursively the layer with the specified key and value. | |
* @param {ol.layer.Base} layer | |
* @param {String} key | |
* @param {any} value | |
* @returns {ol.layer.Base} | |
*/ | |
function findBy(layer, key, value) { | |
if (layer.get(key) === value) { | |
return layer; | |
} | |
// Find recursively if it is a group | |
if (layer.getLayers) { | |
var layers = layer.getLayers().getArray(), | |
len = layers.length, result; | |
for (var i = 0; i < len; i++) { | |
result = findBy(layers[i], key, value); | |
if (result) { | |
return result; | |
} | |
} | |
} | |
return null; | |
} | |
$(document).ready(function() { | |
initializeTree(); | |
// Handle opacity slider control | |
$('input.opacity').slider().on('slide', function(ev) { | |
var layername = $(this).closest('li').data('layerid'); | |
var layer = findBy(map.getLayerGroup(), 'name', layername); | |
layer.setOpacity(ev.value); | |
}); | |
// Handle visibility control | |
$('i').on('click', function() { | |
var layername = $(this).closest('li').data('layerid'); | |
var layer = findBy(map.getLayerGroup(), 'name', layername); | |
layer.setVisible(!layer.getVisible()); | |
if (layer.getVisible()) { | |
$(this).removeClass('glyphicon-unchecked').addClass('glyphicon-check'); | |
} else { | |
$(this).removeClass('glyphicon-check').addClass('glyphicon-unchecked'); | |
} | |
}); | |
}); | |
</script> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* Slider for Bootstrap | |
* | |
* Copyright 2012 Stefan Petre | |
* Licensed under the Apache License v2.0 | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
*/ | |
.slider { | |
display: inline-block; | |
vertical-align: middle; | |
position: relative; | |
} | |
.slider.slider-horizontal { | |
width: 210px; | |
height: 20px; | |
} | |
.slider.slider-horizontal .slider-track { | |
height: 10px; | |
width: 100%; | |
margin-top: -5px; | |
top: 50%; | |
left: 0; | |
} | |
.slider.slider-horizontal .slider-selection { | |
height: 100%; | |
top: 0; | |
bottom: 0; | |
} | |
.slider.slider-horizontal .slider-handle { | |
margin-left: -10px; | |
margin-top: -5px; | |
} | |
.slider.slider-horizontal .slider-handle.triangle { | |
border-width: 0 10px 10px 10px; | |
width: 0; | |
height: 0; | |
border-bottom-color: #0480be; | |
margin-top: 0; | |
} | |
.slider.slider-vertical { | |
height: 210px; | |
width: 20px; | |
} | |
.slider.slider-vertical .slider-track { | |
width: 10px; | |
height: 100%; | |
margin-left: -5px; | |
left: 50%; | |
top: 0; | |
} | |
.slider.slider-vertical .slider-selection { | |
width: 100%; | |
left: 0; | |
top: 0; | |
bottom: 0; | |
} | |
.slider.slider-vertical .slider-handle { | |
margin-left: -5px; | |
margin-top: -10px; | |
} | |
.slider.slider-vertical .slider-handle.triangle { | |
border-width: 10px 0 10px 10px; | |
width: 1px; | |
height: 1px; | |
border-left-color: #0480be; | |
margin-left: 0; | |
} | |
.slider input { | |
display: none; | |
} | |
.slider .tooltip-inner { | |
white-space: nowrap; | |
} | |
.slider-track { | |
position: absolute; | |
cursor: pointer; | |
background-color: #f7f7f7; | |
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); | |
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); | |
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); | |
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); | |
background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); | |
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); | |
-webkit-border-radius: 4px; | |
-moz-border-radius: 4px; | |
border-radius: 4px; | |
} | |
.slider-selection { | |
position: absolute; | |
background-color: #f7f7f7; | |
background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5); | |
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f5f5f5)); | |
background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5); | |
background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5); | |
background-image: linear-gradient(to bottom, #f9f9f9, #f5f5f5); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0); | |
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); | |
-webkit-box-sizing: border-box; | |
-moz-box-sizing: border-box; | |
box-sizing: border-box; | |
-webkit-border-radius: 4px; | |
-moz-border-radius: 4px; | |
border-radius: 4px; | |
} | |
.slider-handle { | |
position: absolute; | |
width: 20px; | |
height: 20px; | |
background-color: #0e90d2; | |
background-image: -moz-linear-gradient(top, #149bdf, #0480be); | |
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); | |
background-image: -webkit-linear-gradient(top, #149bdf, #0480be); | |
background-image: -o-linear-gradient(top, #149bdf, #0480be); | |
background-image: linear-gradient(to bottom, #149bdf, #0480be); | |
background-repeat: repeat-x; | |
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); | |
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); | |
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); | |
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); | |
opacity: 0.8; | |
border: 0px solid transparent; | |
} | |
.slider-handle.round { | |
-webkit-border-radius: 20px; | |
-moz-border-radius: 20px; | |
border-radius: 20px; | |
} | |
.slider-handle.triangle { | |
background: transparent none; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment