當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


d3.js interpolateTransformSvg()用法及代碼示例

D3.js中的interpolateTransformSvg()函數用於返回兩個給定SVG轉換之間的插值器函數。然後,通過更改返回函數中的k值,可以設置不同的變換屬性。

用法:

 interpolateTransformSvg(a, b);

參數:此函數接受上述和以下描述的兩個參數:

  • a: 這是SVG的transform屬性。
  • b:這是SVG的transform屬性。

返回值:它返回內插器函數。

下麵給出了上述函數的一些示例。



範例1:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <meta name="viewport" 
        content="width=device-width,  
                 initial-scale=1.0"> 
  <title>Document</title> 
</head> 
<style> 
</style> 
<body> 
  <!--Fetching from CDN of D3.js --> 
  <script type = "text/javascript"
          src = "https://d3js.org/d3.v4.min.js"> 
  </script> 
  <script> 
    console.log(d3.interpolateTransformSvg( 
  "skewX(30)", 
  "skewX(10) translate(10, 0)"
)(1)) 
    console.log(d3.interpolateTransformSvg( 
  "skewX(30)", 
  "skewX(10) translate(10, 0)"
)(0.5)) 
    console.log(d3.interpolateTransformSvg( 
  "skewX(30)", 
  "skewX(10) translate(10, 0)"
)(0.8)) 
    console.log(d3.interpolateTransformSvg( 
  "skewX(30)", 
  "skewX(10) translate(10, 0)"
)(2)) 
 </script> 
</body> 
</html>

輸出:

範例2:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <meta name="viewport" 
        content="width=device-width, 
                 initial-scale=1.0"> 
  <title>Document</title> 
</head> 
<style> 
</style> 
<body> 
  D3.interpolateTransformSvg() 
  <svg class="box" 
       width="300px" 
       height="200px"> 
  
    <rect class="box1" 
          width="150px" 
          height="100px"
          fill="green" 
          stroke="black"
          stroke-width="2"> 
    </rect> 
  </svg> 
  <button>Clickme</button> 
  <!--fetching from CDN of D3.js -->
  <script type = "text/javascript" 
          src = "https://d3js.org/d3.v4.min.js"> 
   </script> 
  <script> 
    let box=document.querySelector("rect"); 
    let btn=document.querySelector("button"); 
    let interpolateFunc=d3.interpolateTransformSvg( 
      "skewX(60)", 
      "skewY(30) translate(10, 0)" 
  )(0.5); 
  func=()=>{ 
    box.setAttribute("transform", interpolateFunc) 
  } 
  btn.addEventListener("click", func); 
  </script> 
</body> 
</html>

輸出:

點擊之前:

單擊後:




相關用法


注:本文由純淨天空篩選整理自tarun007大神的英文原創作品 D3.js interpolateTransformSvg() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。