Skip to content

Commit 4cc0406

Browse files
committed
v4 support
1 parent a4c9ed6 commit 4cc0406

File tree

7 files changed

+103
-14
lines changed

7 files changed

+103
-14
lines changed

examples/app.css

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.axis path {
2+
display: none;
3+
}
4+
5+
.axis line {
6+
stroke-opacity: 0.3;
7+
shape-rendering: crispEdges;
8+
}
9+
10+
.zoom {
11+
fill: none;
12+
pointer-events: all;
13+
}
14+
15+
.view {
16+
fill: none;
17+
stroke: #000;
18+
}

examples/axis.js

+9-12
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
var d3 = require('d3');
44
// Require the library and give it a reference to d3
5-
var Prerender = require('d3-pre');
5+
var Prerender = require('..');
66
var prerender = Prerender(d3);
77

88

@@ -11,37 +11,34 @@ var prerender = Prerender(d3);
1111
// aware of SVGs that already exist on the page.
1212
prerender.start();
1313

14-
1514
var margin = {top: 20, right: 20, bottom: 30, left: 40},
1615
width = 960 - margin.left - margin.right,
1716
height = 500 - margin.top - margin.bottom;
1817

19-
var x = d3.scale.linear()
18+
var x = d3.scaleLinear()
2019
.domain([-width / 2, width / 2])
2120
.range([0, width]);
2221

23-
var y = d3.scale.linear()
22+
var y = d3.scaleLinear()
2423
.domain([-height / 2, height / 2])
2524
.range([height, 0]);
2625

27-
var xAxis = d3.svg.axis()
26+
var xAxis = d3.axisBottom()
2827
.scale(x)
29-
.orient("bottom")
3028
.tickSize(-height);
3129

32-
var yAxis = d3.svg.axis()
30+
var yAxis = d3.axisLeft()
3331
.scale(y)
34-
.orient("left")
3532
.ticks(5)
3633
.tickSize(-width);
3734

38-
var zoom = d3.behavior.zoom()
39-
.x(x)
40-
.y(y)
35+
var zoom = d3.zoom()
36+
// .x(x)
37+
// .y(y)
4138
.scaleExtent([1, 32])
4239
.on("zoom", zoomed);
4340

44-
var svg = d3.select("#interactive").append("svg")
41+
var svg = d3.select("body").append("svg")
4542
.attr("viewBox", ' 0 0 ' + (width + margin.left + margin.right) + ' ' + (height + margin.top + margin.bottom))
4643
.append("g")
4744
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");

examples/v4.js

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
var d3 = require('d3');
2+
3+
require('./app.css');
4+
// Require the library and give it a reference to d3
5+
var Prerender = require('..');
6+
var prerender = Prerender(d3);
7+
8+
prerender.start();
9+
10+
var svg = d3.select('body').append("svg").attr('width', 600).attr('height', 600),
11+
width = +svg.attr("width"),
12+
height = +svg.attr("height");
13+
14+
var x = d3.scaleLinear()
15+
.domain([-1, width + 1])
16+
.range([-1, width + 1]);
17+
18+
var y = d3.scaleLinear()
19+
.domain([-1, height + 1])
20+
.range([-1, height + 1]);
21+
22+
var xAxis = d3.axisBottom(x)
23+
.ticks((width + 2) / (height + 2) * 10)
24+
.tickSize(height)
25+
.tickPadding(8 - height);
26+
27+
var yAxis = d3.axisRight(y)
28+
.ticks(10)
29+
.tickSize(width)
30+
.tickPadding(8 - width);
31+
32+
var view = svg.append("rect")
33+
.attr("class", "view")
34+
.attr("x", 0.5)
35+
.attr("y", 0.5)
36+
.attr("width", width - 1)
37+
.attr("height", height - 1);
38+
39+
var gX = svg.append("g")
40+
.attr("class", "axis axis--x")
41+
.call(xAxis);
42+
43+
var gY = svg.append("g")
44+
.attr("class", "axis axis--y")
45+
.call(yAxis);
46+
47+
svg.append("rect")
48+
.attr("class", "zoom")
49+
.attr("width", width)
50+
.attr("height", height)
51+
52+
53+
prerender.stop();
54+
svg.call(d3.zoom()
55+
.scaleExtent([1, 40])
56+
.translateExtent([[-100, -100], [width + 90, height + 100]])
57+
.on("zoom", zoomed));
58+
59+
function zoomed() {
60+
svg.select(".x.axis").call(xAxis);
61+
svg.select(".y.axis").call(yAxis);
62+
}
63+
64+
function zoomed() {
65+
view.attr("transform", d3.event.transform);
66+
gX.call(xAxis.scale(d3.event.transform.rescaleX(x)));
67+
gY.call(yAxis.scale(d3.event.transform.rescaleY(y)));
68+
}

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
"description": "Prerender SVGs with D3",
55
"main": "index.js",
66
"scripts": {
7-
"test": "semistandard src/**/* && mocha test/test.js && mochify --transform brfs test/browser.js"
7+
"test": "semistandard src/**/* && mocha test/test.js && mochify --transform brfs test/browser.js",
8+
"example-axis": "budo examples/v4.js -- -t [ browserify-css --autoInject=true ]"
89
},
910
"author": "",
1011
"license": "MIT",
1112
"dependencies": {},
1213
"devDependencies": {
1314
"brfs": "^1.4.3",
15+
"browserify-css": "^0.9.1",
16+
"budo": "^9.0.0",
1417
"d3": "^4.2.2",
1518
"expect.js": "^0.3.1",
1619
"jsdom": "^3.1.2",

src/browser.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
var dataString = 'data-pid';
3-
var modifiedAxis = require('./d3/axis');
3+
// var modifiedAxis = require('./d3/axis');
44
var utils = require('./utils');
55

66
module.exports = function (count) {

src/d3/axis.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
console.log('axis,,,')
12
var d3_svg_axisOrients = {
23
top: 1,
34
right: 1,

test/test.js

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ var jsdom = require('jsdom');
88
var Prerender = require('..');
99
var _ = require('lodash');
1010

11+
console.log(d3);
12+
1113
var cleanString = function (str) {
1214
return str.replace(/\s+/g, ' ').trim();
1315
};

0 commit comments

Comments
 (0)