d3js basic JavaScript&css:如何 我将字符串数组(用于图像 url)应用于现有条形图
d3js basic javascript&css: how to I apply an array of strings (for image urls) to the existing bar chart?
[D3JS]
因此,我尝试做的是制作一个与数据大小成比例的方形条形图,以及要分配的特定图像的每个基准面。
<style type="text/css">
div.bar {
display: inline-block;
width: 20px;
height: 75px; /* Gets overriden by D3-assigned height below */
margin-right: 2px;
background-image: url('http://4.bp.blogspot.com/-HWtqJNu3blk/UOhy_vj2I3I/AAAAAAAAhdY/U-krgiDfksw/s640/sydney+australia+rubber+duck+1.jpg');
background-size: 100%;}
</style>
<script type="text/javascript">
var dataset = [ 25, 7, 5];
var coverset=['http://4.bp.blogspot.com/-HWtqJNu3blk/UOhy_vj2I3I/AAAAAAAAhdY/U-krgiDfksw/s640/sydney+australia+rubber+duck+1.jpg',
'http://fora.mtv.ca/wp-content/uploads/2012/09/catsofinstagram.jpg',
'http://www.dogbreedinfo.com/images22/NorthernInuitDogWhiteThunder10Months.jpg',
]
var bar = d3.select("body").selectAll("div")
.data(dataset)
.enter()
.append("div")
.attr("class", "bar")
.style("height", function(d) {
var barHeight = d * 5;
return barHeight + "px";
})
.style("width", function(d) {
var barWidth = d * 5;
return barWidth + "px";
});
var img = d3.select("body").selectAll("div")
.data(coverset)
.enter()
.append("div")
.attr("class", "bar")
.style("background-img", function(d){
return "url(" + d +")";
});
</script>
有了这个代码,我明白了。所以我一半的代码都在工作,条形图与每个基准面的大小成正比,但是,每个条形都应具有"封面集"中指定的不同图像,但它仅显示默认的黄鸭图片,不会被 D3 分配的图像覆盖。
有人可以指出我在代码的图像部分做错了什么吗?谢谢!
这是实现目标的一种方法(发布在JSBIN上的代码示例的修订版本(。
http://jsbin.com/ocoyal/1/edit
.CSS
div.bar {
display: inline-block;
width: 20px;
height: 75px; /* Gets overriden by D3-assigned height below */
margin-right: 2px;
background-image: url('http://4.bp.blogspot.com/-HWtqJNu3blk/UOhy_vj2I3I/AAAAAAAAhdY/U-krgiDfksw/s640/sydney+australia+rubber+duck+1.jpg');
/* https://developer.mozilla.org/en-US/docs/Web/CSS/background-size */
background-size: cover;
background-repeat: no-repeat;
}
JavaScript
var dataset = [ 25, 7, 5];
var coverset=['http://4.bp.blogspot.com/-HWtqJNu3blk/UOhy_vj2I3I/AAAAAAAAhdY/U-krgiDfksw/s640/sydney+australia+rubber+duck+1.jpg',
'http://fora.mtv.ca/wp-content/uploads/2012/09/catsofinstagram.jpg',
'http://www.dogbreedinfo.com/images22/NorthernInuitDogWhiteThunder10Months.jpg',
]
var bar = d3.select("body").selectAll("div")
.data(dataset)
.enter()
.append("div")
.attr("class", "bar")
.style("height", function(d) {
var barHeight = d * 5;
return barHeight + "px";
})
.style("width", function(d) {
var barWidth = d * 5;
return barWidth + "px";
})
// "background-image", not "background-img"
// using "i" for index
.style("background-image", function(d, i){
return "url(" + coverset[i] +")";
});
相关文章:
- 用于图像和基于浏览器的图表的图表框架
- CodeIgniter:用于获取包括图像在内的值的控制器
- 用于将html转换为bbcode的Javascript,用于带有链接的图像
- Javascript没有'不适用于图像滑块(帮助)
- 将字节转换为用于在HTML5画布上绘制的图像
- 图像加载不适用于 IE 8 或更低版本
- 用于交换图像的 Javascript
- 用于图像的 Javascript 函数
- 背景图像不适用于 encodeURIComponent
- 用于插入图像的 JavaScript
- 用于图像上传的 ng 文件上传不起作用
- javascript用于带有html5的自动图像滑块
- 用于交换图像集的按钮
- 用于基于 PHP 变量更改图像的 JavaScript
- css:拖动图像不'不适用于Firefox
- 图像宽度上的转换不适用于窗口滚动
- 用于图像上映射区域的Bootstrap Popover/Tooltip
- Three.js-无法将本地图像用于loadTexture
- Node.js -将画布保存为图像[用于使用Amazon S3的Heroku托管应用程序]
- 延迟图像用于显示目的,而不是使用javascript的效率