Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8838441
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T09:59:43+00:00 2026-06-14T09:59:43+00:00

I have this small area chart demo done in d3.js. I’m able to animate

  • 0

I have this small area chart demo done in d3.js.

I’m able to animate the chart as a whole but can’t find a way to animate it piece-by-piece (I want it to be a proper animation, not a simple reveal using svg-clip). For example the code to animate the circles in the page linked above is just 2 simple lines that I’ve broken up here for clarity:

// start frame
chart
    .selectAll( 'circle' )
    .data( data )
    .enter()
    .append( 'circle' )
    .attr( 'cx', function( d, i ) { return x( i ); })
    .attr( 'cy', y( 0 ) )
    .attr( 'class', 'point' ).attr( 'r', 5 );

// end frame
chart
    .selectAll( 'circle' )
    .data( data )
    .transition()
    .duration( 3000 )
    .attr( 'cx', function( d, i ) { return x( i ); })
    .attr( 'cy', function( d, i ) { return y( d ); });

The problem here is that all the circles start and finish at once. The same happens with the segments of the area chart. So how do I move them one after another? One way is to use d3’s delay function; I’m not sure how I would do this for the path segments of the area chart but for the circles marking the data points, it’d be something like this:

// start frame
chart
    .selectAll( 'circle' )
    .data( data )
    .enter()
    .append( 'circle' )
    .attr( 'cx', function( d, i ) { return x( i ); })
    .attr( 'cy', y( 0 ) )
    .attr( 'class', 'point' ).attr( 'r', 5 );

// end frame
chart
    .selectAll( 'circle' )
    .data( data )
    .transition()
    .delay( 1000 * c )
    .duration( 3000 )
    .attr( 'cx', function( d, i ) { return x( i ); })
    .attr( 'cy', function( d, i ) { return y( d ); });

But to do this, I need c, the handle linking to individual circles one after the other, as if in a loop.

So my questions are:

  1. How do I get c, the handle to an individual element of a
    selection, for the circles and for the area (svg.area()) chart?

  2. Is there a simpler way to achieve this than my delay approach?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T09:59:45+00:00Added an answer on June 14, 2026 at 9:59 am

    1) The c you’re looking for can be gotten by passing a function into delay(), exactly in the same way you do for any attr() call (see documentation):

    .delay( function(d, i) { return 1000 * i; } )// i is your "c"
    

    2) Using delay() sure seems like the right approach for this.

    AFAIK, you’re still going to have difficulties doing the same for the path. I can’t come up with any way to do this other than animating the underlying data points themselves.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In CodeIgniter I'm using a base CRUD My_model , but I have this small
I have this small class looking like this: private static int field1 = -
I have this small class called City that simply holds some information about a
I have this small snippet to change a bit of html when a user
I have this small PHP script that takes a POST variable and writes it
I have this small piece of code that basically takes a list and runs
In my c# application i have this small form which is used to set
I have this string: small: http://img.exent.com/free/frg/products/666550/player_boxshot.jpg boxshot: http://img.exent.com/free/frg/products/666550/boxshot.jpg I want to get only the
So I am obviously not a very good programmer. I have written this small
Work on this small test application to learn threading/locking. I have the following code,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.