91 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| id: 587d7fa8367417b2b2512bc9
 | ||
| title: Update the Height of an Element Dynamically
 | ||
| required:
 | ||
|   - src: 'https://cdnjs.cloudflare.com/ajax/libs/d3/4.3.0/d3.min.js'
 | ||
| challengeType: 6
 | ||
| videoUrl: ''
 | ||
| localeTitle: 动态更新元素的高度
 | ||
| ---
 | ||
| 
 | ||
| ## Description
 | ||
| <section id="description">之前的挑战包括如何显示数组中的数据以及如何添加CSS类。您可以结合这些课程来创建简单的条形图。这有两个步骤:1)为数组中的每个数据点创建一个<code>div</code> 2)使用<code>style()</code>方法中的回调函数给每个<code>div</code>一个动态高度,该函数将高度设置为等于数据值。回想一下格式为使用回调函数设置样式: <code>selection.style("cssProperty", (d) => d)</code> </section>
 | ||
| 
 | ||
| ## Instructions
 | ||
| <section id="instructions">将<code>style()</code>方法添加到编辑器中的代码中,以设置每个元素的<code>height</code>属性。使用回调函数返回数据点的值,并添加字符串“px”。 </section>
 | ||
| 
 | ||
| ## Tests
 | ||
| <section id='tests'>
 | ||
| 
 | ||
| ```yml
 | ||
| tests:
 | ||
|   - text: 第一个<code>div</code>的<code>height</code>应为12像素。
 | ||
|     testString: 'assert($("div").eq(0).css("height") == "12px", "The first <code>div</code> should have a <code>height</code> of 12 pixels.");'
 | ||
|   - text: 第二个<code>div</code>的<code>height</code>应为31像素。
 | ||
|     testString: 'assert($("div").eq(1).css("height") == "31px", "The second <code>div</code> should have a <code>height</code> of 31 pixels.");'
 | ||
|   - text: 第三个<code>div</code>的<code>height</code>应为22像素。
 | ||
|     testString: 'assert($("div").eq(2).css("height") == "22px", "The third <code>div</code> should have a <code>height</code> of 22 pixels.");'
 | ||
|   - text: 第四个<code>div</code>的<code>height</code>应为17像素。
 | ||
|     testString: 'assert($("div").eq(3).css("height") == "17px", "The fourth <code>div</code> should have a <code>height</code> of 17 pixels.");'
 | ||
|   - text: 第五个<code>div</code>的<code>height</code>应为25像素。
 | ||
|     testString: 'assert($("div").eq(4).css("height") == "25px", "The fifth <code>div</code> should have a <code>height</code> of 25 pixels.");'
 | ||
|   - text: 第六个<code>div</code>的<code>height</code>应为18像素。
 | ||
|     testString: 'assert($("div").eq(5).css("height") == "18px", "The sixth <code>div</code> should have a <code>height</code> of 18 pixels.");'
 | ||
|   - text: 第七个<code>div</code>的<code>height</code>应为29像素。
 | ||
|     testString: 'assert($("div").eq(6).css("height") == "29px", "The seventh <code>div</code> should have a <code>height</code> of 29 pixels.");'
 | ||
|   - text: 第八个<code>div</code>的<code>height</code>应为14像素。
 | ||
|     testString: 'assert($("div").eq(7).css("height") == "14px", "The eighth <code>div</code> should have a <code>height</code> of 14 pixels.");'
 | ||
|   - text: 第九个<code>div</code>的<code>height</code>应为9像素。
 | ||
|     testString: 'assert($("div").eq(8).css("height") == "9px", "The ninth <code>div</code> should have a <code>height</code> of 9 pixels.");'
 | ||
| 
 | ||
| ```
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| ## Challenge Seed
 | ||
| <section id='challengeSeed'>
 | ||
| 
 | ||
| <div id='html-seed'>
 | ||
| 
 | ||
| ```html
 | ||
| <style>
 | ||
|   .bar {
 | ||
|     width: 25px;
 | ||
|     height: 100px;
 | ||
|     display: inline-block;
 | ||
|     background-color: blue;
 | ||
|   }
 | ||
| </style>
 | ||
| <body>
 | ||
|   <script>
 | ||
|     const dataset = [12, 31, 22, 17, 25, 18, 29, 14, 9];
 | ||
| 
 | ||
|     d3.select("body").selectAll("div")
 | ||
|       .data(dataset)
 | ||
|       .enter()
 | ||
|       .append("div")
 | ||
|       .attr("class", "bar")
 | ||
|       // Add your code below this line
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
|       // Add your code above this line
 | ||
|   </script>
 | ||
| </body>
 | ||
| 
 | ||
| ```
 | ||
| 
 | ||
| </div>
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| </section>
 | ||
| 
 | ||
| ## Solution
 | ||
| <section id='solution'>
 | ||
| 
 | ||
| ```js
 | ||
| // solution required
 | ||
| ```
 | ||
| </section>
 |