Upload files to "js"
This commit is contained in:
parent
5505313648
commit
902cb5d5b6
6 changed files with 24197 additions and 0 deletions
132
js/leaflet-sidebar.js
Normal file
132
js/leaflet-sidebar.js
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
L.Control.Sidebar = L.Control.extend({
|
||||
includes: L.Mixin.Events,
|
||||
|
||||
initialize: function (id, options) {
|
||||
var i, child;
|
||||
|
||||
L.setOptions(this, options);
|
||||
|
||||
// Find sidebar HTMLElement
|
||||
this._sidebar = L.DomUtil.get(id);
|
||||
|
||||
// Attach touch styling if necessary
|
||||
if (L.Browser.touch)
|
||||
L.DomUtil.addClass(this._sidebar, 'leaflet-touch');
|
||||
|
||||
// Find sidebar > ul.sidebar-tabs and sidebar > div.sidebar-content
|
||||
for (i = this._sidebar.children.length - 1; i >= 0; i--) {
|
||||
child = this._sidebar.children[i];
|
||||
if (child.tagName == 'UL' &&
|
||||
L.DomUtil.hasClass(child, 'sidebar-tabs'))
|
||||
this._tabs = child;
|
||||
|
||||
else if (child.tagName == 'DIV' &&
|
||||
L.DomUtil.hasClass(child, 'sidebar-content'))
|
||||
this._container = child;
|
||||
}
|
||||
|
||||
// Find sidebar > ul.sidebar-tabs > li
|
||||
this._tabitems = [];
|
||||
for (i = this._tabs.children.length - 1; i >= 0; i--) {
|
||||
child = this._tabs.children[i];
|
||||
if (child.tagName == 'LI') {
|
||||
this._tabitems.push(child);
|
||||
child._sidebar = this;
|
||||
}
|
||||
}
|
||||
|
||||
// Find sidebar > div.sidebar-content > div.sidebar-pane
|
||||
this._panes = [];
|
||||
for (i = this._container.children.length - 1; i >= 0; i--) {
|
||||
child = this._container.children[i];
|
||||
if (child.tagName == 'DIV' &&
|
||||
L.DomUtil.hasClass(child, 'sidebar-pane'))
|
||||
this._panes.push(child);
|
||||
}
|
||||
|
||||
this._hasTouchStart = L.Browser.touch &&
|
||||
('ontouchstart' in document.documentElement);
|
||||
},
|
||||
|
||||
addTo: function (map) {
|
||||
this._map = map;
|
||||
|
||||
var e = this._hasTouchStart ? 'touchstart' : 'click';
|
||||
for (var i = this._tabitems.length - 1; i >= 0; i--) {
|
||||
var child = this._tabitems[i];
|
||||
L.DomEvent.on(child.firstChild, e, this._onClick, child);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
removeFrom: function (map) {
|
||||
this._map = null;
|
||||
|
||||
var e = this._hasTouchStart ? 'touchstart' : 'click';
|
||||
for (var i = this._tabitems.length - 1; i >= 0; i--) {
|
||||
var child = this._tabitems[i];
|
||||
L.DomEvent.off(child.firstChild, e, this._onClick);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
open: function(id) {
|
||||
var i, child;
|
||||
|
||||
// hide old active contents and show new content
|
||||
for (i = this._panes.length - 1; i >= 0; i--) {
|
||||
child = this._panes[i];
|
||||
if (child.id == id)
|
||||
L.DomUtil.addClass(child, 'active');
|
||||
else if (L.DomUtil.hasClass(child, 'active'))
|
||||
L.DomUtil.removeClass(child, 'active');
|
||||
}
|
||||
|
||||
// remove old active highlights and set new highlight
|
||||
for (i = this._tabitems.length - 1; i >= 0; i--) {
|
||||
child = this._tabitems[i];
|
||||
if (child.firstChild.hash == '#' + id)
|
||||
L.DomUtil.addClass(child, 'active');
|
||||
else if (L.DomUtil.hasClass(child, 'active'))
|
||||
L.DomUtil.removeClass(child, 'active');
|
||||
}
|
||||
|
||||
this.fire('content', { id: id });
|
||||
|
||||
// open sidebar (if necessary)
|
||||
if (L.DomUtil.hasClass(this._sidebar, 'collapsed')) {
|
||||
this.fire('opening');
|
||||
L.DomUtil.removeClass(this._sidebar, 'collapsed');
|
||||
}
|
||||
},
|
||||
|
||||
close: function() {
|
||||
// remove old active highlights
|
||||
for (var i = this._tabitems.length - 1; i >= 0; i--) {
|
||||
var child = this._tabitems[i];
|
||||
if (L.DomUtil.hasClass(child, 'active'))
|
||||
L.DomUtil.removeClass(child, 'active');
|
||||
}
|
||||
|
||||
// close sidebar
|
||||
if (!L.DomUtil.hasClass(this._sidebar, 'collapsed')) {
|
||||
this.fire('closing');
|
||||
L.DomUtil.addClass(this._sidebar, 'collapsed');
|
||||
}
|
||||
},
|
||||
|
||||
_onClick: function(e) {
|
||||
if (L.DomUtil.hasClass(this, 'active'))
|
||||
this._sidebar.close();
|
||||
else
|
||||
this._sidebar.open(this.firstChild.hash.slice(1));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
L.control.sidebar = function (sidebar, options) {
|
||||
return new L.Control.Sidebar(sidebar, options);
|
||||
};
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue