Alexey Velikiy
8 years ago
4 changed files with 204 additions and 0 deletions
@ -0,0 +1,35 @@ |
|||||||
|
<!-- |
||||||
|
|
||||||
|
--> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div id="holder"> |
||||||
|
<us-map /> |
||||||
|
<tooltip /> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
|
||||||
|
var _ = require('lodash'); |
||||||
|
const map = require('d3-components/basic-map-tooltip/map'); |
||||||
|
const tooltip = require('d3-components/basic-map-tooltip/tooltip'); |
||||||
|
|
||||||
|
export default { |
||||||
|
components: { |
||||||
|
usMap: map, |
||||||
|
tooltip: tooltip |
||||||
|
}, |
||||||
|
data: function() { |
||||||
|
return { |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
|
||||||
|
</style> |
@ -0,0 +1,38 @@ |
|||||||
|
<!-- |
||||||
|
|
||||||
|
Based on: |
||||||
|
http://bl.ocks.org/rveciana/a2a1c21ca1c71cd3ec116cc911e5fce9 |
||||||
|
|
||||||
|
Links: |
||||||
|
|
||||||
|
--> |
||||||
|
|
||||||
|
<template> |
||||||
|
<svg width="500" height="300"></svg> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
|
||||||
|
const d3 = require('d3'); |
||||||
|
|
||||||
|
export default { |
||||||
|
mounted: function() { |
||||||
|
var svg = d3.select(this.$el); |
||||||
|
var width = +svg.attr('width'); |
||||||
|
var height = +svg.attr('height'); |
||||||
|
|
||||||
|
var projection = d3.geoAlbersUsa(); |
||||||
|
var path = d3.geoPath() |
||||||
|
.projection(projection); |
||||||
|
|
||||||
|
d3.json("us.json", function(error, us) { |
||||||
|
svg.append("path") |
||||||
|
.attr("class", "states") |
||||||
|
.datum(topojson.feature(us, us.objects.states)) |
||||||
|
.attr("d", path); |
||||||
|
}); |
||||||
|
|
||||||
|
} |
||||||
|
// TODO: fire events |
||||||
|
} |
||||||
|
</script> |
@ -0,0 +1,125 @@ |
|||||||
|
<template> |
||||||
|
<div id="tooltipPositioner"> |
||||||
|
<div id="tooltip"> |
||||||
|
<div id="tooltipContainer"> |
||||||
|
<div class="department">adsad</div> |
||||||
|
<div class="rule">asdas</div> |
||||||
|
<div class="name"></div> |
||||||
|
<div class="discretion"></div> |
||||||
|
<div class="valuesContainer"> |
||||||
|
<span class="value"></span> |
||||||
|
</div> |
||||||
|
<div class="chart"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
var $ = require('jquery'); |
||||||
|
|
||||||
|
module.exports = { |
||||||
|
name: 'tooltip' |
||||||
|
} |
||||||
|
|
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
#tooltipPositioner { |
||||||
|
position: relative; |
||||||
|
left: -48%; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltipContainer { |
||||||
|
position: absolute; |
||||||
|
bottom: 0; |
||||||
|
width: 230px; |
||||||
|
left: -125px; |
||||||
|
font-size: 12px; |
||||||
|
line-height: 16px; |
||||||
|
padding: 10px; |
||||||
|
border-radius: 3px; |
||||||
|
background: rgba(255,255,255,0.9); |
||||||
|
color: #000; |
||||||
|
box-shadow: 0 1px 5px rgba(0,0,0,0.4); |
||||||
|
-moz-box-shadow: 0 1px 5px rgba(0,0,0,0.4); |
||||||
|
border:1px solid rgba(200,200,200,0.85); |
||||||
|
text-align:center; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip { |
||||||
|
text-align:center; |
||||||
|
z-index: 1000; |
||||||
|
position: absolute; |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .department { |
||||||
|
text-transform: uppercase; |
||||||
|
text-align: left; |
||||||
|
font-size: 10px; |
||||||
|
margin-bottom: 2px; |
||||||
|
color:#666; |
||||||
|
text-align:center; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .rule{ |
||||||
|
height:1px; |
||||||
|
margin:1px auto 3px; |
||||||
|
background:#ddd; |
||||||
|
width:130px; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .discretion{ |
||||||
|
color:#666; |
||||||
|
/* text-transform:uppercase;*/ |
||||||
|
font-size: 11px; |
||||||
|
text-align:center; |
||||||
|
font-style:italic; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .name { |
||||||
|
text-align: left; |
||||||
|
font-size: 13px; |
||||||
|
/* width:170px;*/ |
||||||
|
text-align:center; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .value { |
||||||
|
/* position:absolute;*/ |
||||||
|
text-align:center; |
||||||
|
right:10px; |
||||||
|
top:28px; |
||||||
|
font-size: 16px; |
||||||
|
/* width:100px;*/ |
||||||
|
text-align:center; |
||||||
|
overflow:hidden; |
||||||
|
font-weight:bold; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .change { |
||||||
|
padding-left:10px; |
||||||
|
/*width:110px;*/ |
||||||
|
font-size: 16px; |
||||||
|
text-align:right; |
||||||
|
overflow:hidden; |
||||||
|
/*position:absolute;*/ |
||||||
|
font-weight:bold; |
||||||
|
color:#666; |
||||||
|
text-align:center; |
||||||
|
display:inline; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip .valuesContainer { |
||||||
|
padding-top:7px; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip.minus .change { |
||||||
|
color:#900; |
||||||
|
} |
||||||
|
|
||||||
|
#tooltip.plus .change { |
||||||
|
color:#090; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue