function d3_behavior_zoomDelta() {

  // mousewheel events are totally broken!
  // https://bugs.webkit.org/show_bug.cgi?id=40441
  // not only that, but Chrome and Safari differ in re. to acceleration!
  if (!d3_behavior_zoomDiv) {
    d3_behavior_zoomDiv = d3.select("body").append("div")
        .style("visibility", "hidden")
        .style("top", 0)
        .style("height", 0)
        .style("width", 0)
        .style("overflow-y", "scroll")
      .append("div")
        .style("height", "2000px")
      .node().parentNode;
  }

  var e = d3.event, delta;
  try {
    d3_behavior_zoomDiv.scrollTop = 1000;
    d3_behavior_zoomDiv.dispatchEvent(e);
    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
  } catch (error) {
    delta = e.wheelDelta || (-e.detail * 5);
  }

  return delta * .005;
}
function d3_behavior_zoomDelta() {

  // mousewheel events are totally broken!
  // https://bugs.webkit.org/show_bug.cgi?id=40441
  // not only that, but Chrome and Safari differ in re. to acceleration!
  if (!d3_behavior_zoomDiv) {
    d3_behavior_zoomDiv = d3.select("body").append("div")
        .style("visibility", "hidden")
        .style("top", 0)
        .style("height", 0)
        .style("width", 0)
        .style("overflow-y", "scroll")
      .append("div")
        .style("height", "2000px")
      .node().parentNode;
  }

  var e = d3.event, delta;
  try {
    d3_behavior_zoomDiv.scrollTop = 1000;
    d3_behavior_zoomDiv.dispatchEvent(e);
    delta = 1000 - d3_behavior_zoomDiv.scrollTop;
  } catch (error) {
    delta = e.wheelDelta || (-e.detail * 5);
  }

  return delta * .005;
}
function d3_behavior_zoomDelta ( ) { // mousewheel events are totally broken! // https://bugs.webkit.org/show_bug.cgi?id=40441 // not only that, but Chrome and Safari differ in re. to acceleration! if ( ! d3_behavior_zoomDiv ) { d3_behavior_zoomDiv = d3 . select ( "body" ) . append ( "div" ) . style ( "visibility" , "hidden" ) . style ( "top" , 0 ) . style ( "height" , 0 ) . style ( "width" , 0 ) . style ( "overflow-y" , "scroll" ) . append ( "div" ) . style ( "height" , "2000px" ) . node ( ) . parentNode ; } var e = d3 . event , delta ; try { d3_behavior_zoomDiv . scrollTop = 1000 ; d3_behavior_zoomDiv . dispatchEvent ( e ) ; delta = 1000 - d3_behavior_zoomDiv . scrollTop ; } catch ( error ) { delta = e . wheelDelta || ( - e . detail * 5 ) ; } return delta * .005 ; }
detect the pixels that would be scrolled by this wheel event
detect the pixels that would be scrolled by this wheel event