ol-ext
Version:
A set of cool extensions for OpenLayers (ol) in node modules structure
178 lines (169 loc) • 3.68 kB
CSS
.ol-control.ol-timeline {
bottom: 0;
left: 0;
right: 0;
transition: .3s;
background-color: rgba(255,255,255,.4);
}
.ol-control.ol-timeline.ol-collapsed {
transform: translateY(100%);
}
.ol-timeline {
overflow: hidden;
padding: 2px 0 0;
}
.ol-timeline .ol-scroll {
overflow: hidden;
padding: 0;
scroll-behavior: smooth;
line-height: 1em;
height: 6em;
padding: 0 50%;
}
.ol-timeline .ol-scroll.ol-move {
scroll-behavior: unset;
}
.ol-timeline.ol-hasbutton .ol-scroll {
margin-left: 1.5em;
padding: 0 calc(50% - .75em);
}
.ol-timeline .ol-buttons {
display: none;
position: absolute;
top: 0;
background: rgba(255,255,255,.5);
width: 1.5em;
bottom: 0;
left: 0;
z-index: 10;
}
.ol-timeline.ol-hasbutton .ol-buttons {
display: block;
}
.ol-timeline .ol-buttons button {
font-size: 1em;
margin: 1px;
position: relative;
}
.ol-timeline .ol-buttons .ol-zoom-in:before,
.ol-timeline .ol-buttons .ol-zoom-out:before {
content: "+";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.ol-timeline .ol-buttons .ol-zoom-out:before{
content: '−';
}
.ol-timeline .ol-scroll > div {
height: 100%;
position: relative;
}
.ol-timeline .ol-scroll .ol-times {
background: rgba(255,255,255,.5);
height: 1em;
bottom: 0;
position: absolute;
left: -1000px;
right: -1000px;
}
.ol-timeline .ol-scroll .ol-time {
position: absolute;
font-size: .7em;
color: #999;
bottom: 0;
transform: translateX(-50%);
}
.ol-timeline .ol-scroll .ol-time.ol-year {
color: #666;
z-index: 1;
}
.ol-timeline .ol-scroll .ol-time:before {
content: "";
position: absolute;
bottom: 1.2em;
left: 50%;
height: 500px;
border-left: 1px solid currentColor;
}
.ol-timeline .ol-scroll .ol-features {
position: absolute;
top: 0;
bottom: 1em;
left: -200px;
right: -1000px;
margin: 0 0 0 200px;
overflow: hidden;
}
.ol-timeline .ol-scroll .ol-feature {
position: absolute;
font-size: .7em;
color: #999;
top: 0;
background: #fff;
max-width: 3em;
max-height: 2.4em;
min-height: 1em;
line-height: 1.2em;
border: 1px solid #ccc;
overflow: hidden;
padding: 0 .5em 0 0;
transition: all .3s;
cursor: pointer;
box-sizing: border-box;
}
.ol-timeline.ol-zoomhover .ol-scroll .ol-feature:hover,
.ol-timeline.ol-zoomhover .ol-scroll .ol-feature.ol-select {
z-index: 1;
transform: scale(1.2);
background: #eee;
/* max-width: 14em!important; */
}
/* Center */
.ol-timeline .ol-center-date {
display: none;
position: absolute;
left: 50%;
height: 100%;
width: 2px;
bottom: 0;
z-index: 2;
pointer-events: none;
transform: translateX(-50%);
background-color: #f00;
opacity: .4;
}
.ol-timeline.ol-hasbutton .ol-center-date {
left: calc(50% + .75em);
}
/* Show center */
.ol-timeline.ol-pointer .ol-center-date {
display: block;
}
.ol-timeline.ol-pointer .ol-center-date:before,
.ol-timeline.ol-pointer .ol-center-date:after {
content: '';
border: 0.3em solid transparent;
border-width: .3em .25em;
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.ol-timeline.ol-pointer .ol-center-date:before {
border-top-color: #f00;
top: 0;
}
.ol-timeline.ol-pointer .ol-center-date:after {
border-bottom-color: #f00;
bottom: 0
}
/* show interval */
.ol-timeline.ol-interval .ol-center-date {
display: block;
background-color: transparent;
border: 0 solid #000;
border-width: 0 10000px;
box-sizing: content-box;
opacity: .2;
}