過(guò)渡效果

  1. transition
//    可以給父元素開(kāi)啟過(guò)渡效果然后用select找到子元素修改屬性時(shí)就會(huì)產(chǎn)生過(guò)渡效果
    g.transition().duration(2000).ease("bounce-out").select(".rect-1").attr("width",500);
//    也可以直接給修改屬性的元素開(kāi)啟過(guò)渡效果
    d3.select(".rect-1").transition().duration(2000).ease("bounce-out").attr("width",500);
//    開(kāi)啟過(guò)渡后所有子元素都會(huì)享有過(guò)渡動(dòng)畫(huà)
    g.transition().duration(2000).ease("bounce-out").selectAll("[class^=rect]").attr("width",500);
  1. each()
//    開(kāi)啟過(guò)渡效果后會(huì)返回一個(gè)過(guò)渡對(duì)象該對(duì)象有一個(gè)增強(qiáng)版的each可以給第一個(gè)參數(shù)放一個(gè)事件名稱
//    start(開(kāi)始)  stop(結(jié)束) interrupt(打斷 -- 在過(guò)渡效果執(zhí)行中 又在其他地方調(diào)用了過(guò)渡會(huì)觸發(fā)打斷事件)
//    如果只傳一個(gè)參數(shù)則與普通的d3.each一樣使用
    g.transition().duration(2000).ease("bounce-out").each("interrupt", function () {
        console.log("interrupt");
    }).select(".rect-1").attr("width", 500);
    setTimeout(function () {
        g.transition().duration(2000).ease("bounce-out").selectAll("[class^=rect]").attr("width", 500);
    }, 1000);

  1. call()
  const xScale = d3.scale.ordinal().domain(d3.range(dataSet.length)).rangeRoundBands([0, width], .5);
    const xAxis = d3.svg.axis().scale(xScale).orient("bottom");
    const g = svg.append("g").attr("class", "axis").attr("transform", "translate(20,300)").call(xAxis);
    //    比例尺的定義域發(fā)生了變化
    xScale.rangeRoundBands([width, 0]);
    //    call執(zhí)行映射比例尺的行為**也是修改子元素的屬性**
    // 可以給父元素開(kāi)啟過(guò)渡后調(diào)用call可以產(chǎn)生過(guò)渡效果
    g.transition().duration(2000).ease("bounce-out").call(xAxis);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容