Skip to content
This repository was archived by the owner on Sep 28, 2023. It is now read-only.

Commit 81a8988

Browse files
author
nehardt
committed
Use translate, not translate3d
This has the added benefits of removing vendor prefixes and removing the reference to global `document` so serverside rendering is possible. Also added .gitignore for WebStorm IDE.
1 parent c16077a commit 81a8988

File tree

6 files changed

+14
-59
lines changed

6 files changed

+14
-59
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/node_modules
22
/dist
3-
npm-debug.log
3+
npm-debug.log
4+
/.idea

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ A function can be used to perform custom transitions:
120120
navigationController.pushView(<MyView />, {
121121
transition(prevElement, nextElement, done) {
122122
// Do some sort of animation on the views
123-
prevElement.style.transform = 'translate3d(100%, 0, 0)';
124-
nextElement.style.transform = 'translate3d(0, 0, 0)';
123+
prevElement.style.transform = 'translate(100%, 0)';
124+
nextElement.style.transform = 'translate(0, 0)';
125125
// Tell the navigationController when the animation is complete
126126
setTimeout(done, 500);
127127
}

spec/navigation-controller.spec.jsx

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,8 @@ import rebound from 'rebound';
1010
import NavigationController from '../src/navigation-controller';
1111
import View from '../examples/src/view';
1212

13-
import { getVendorPrefix } from '../src/util/dom';
14-
1513
const { Transition } = NavigationController;
1614

17-
const transformPrefix = getVendorPrefix('transform');
18-
1915
class ViewA extends View { }
2016
class ViewB extends View { }
2117
class ViewC extends View { }
@@ -94,8 +90,8 @@ describe('NavigationController', () => {
9490
});
9591
describe('#componentDidMount', () => {
9692
it('transforms the view wrappers', () => {
97-
expect(viewWrapper0).to.have.deep.property(`style.${transformPrefix}`);
98-
expect(viewWrapper1).to.have.deep.property(`style.${transformPrefix}`);
93+
expect(viewWrapper0).to.have.deep.property(`style.transform`);
94+
expect(viewWrapper1).to.have.deep.property(`style.transform`);
9995
});
10096
});
10197
describe('#__transformViews', () => {
@@ -107,8 +103,8 @@ describe('NavigationController', () => {
107103
it('translates the views', (done) => {
108104
controller.__transformViews(10, 20, 30, 40);
109105
requestAnimationFrame(() => {
110-
expect(viewWrapper1.style[transformPrefix]).to.equal(`translate3d(10%, 20%, 0px)`);
111-
expect(viewWrapper0.style[transformPrefix]).to.equal(`translate3d(30%, 40%, 0px)`);
106+
expect(viewWrapper1.style.transform).to.equal(`translate(10%, 20%)`);
107+
expect(viewWrapper0.style.transform).to.equal(`translate(30%, 40%)`);
112108
done();
113109
});
114110
});
@@ -356,13 +352,13 @@ describe('NavigationController', () => {
356352
transition(prevElement, nextElement, done) {
357353
_prevElement = prevElement;
358354
_nextElement = nextElement;
359-
prevElement.style[transformPrefix] = 'translate3d(10px, 20px, 0px)';
360-
nextElement.style[transformPrefix] = 'translate3d(30px, 40px, 0px)';
355+
prevElement.style.transform = 'translate(10px, 20px)';
356+
nextElement.style.transform = 'translate(30px, 40px)';
361357
setTimeout(done, 500);
362358
},
363359
onComplete() {
364-
expect(_prevElement.style[transformPrefix]).to.equal(`translate3d(10px, 20px, 0px)`);
365-
expect(_nextElement.style[transformPrefix]).to.equal(`translate3d(30px, 40px, 0px)`);
360+
expect(_prevElement.style.transform).to.equal(`translate(10px, 20px)`);
361+
expect(_nextElement.style.transform).to.equal(`translate(30px, 40px)`);
366362
done();
367363
}
368364
});

spec/util/dom.spec.js

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/navigation-controller.jsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import React from 'react';
22
import rebound from 'rebound';
33
import classNames from 'classnames';
44

5-
import { getVendorPrefix } from './util/dom';
65
import { dropRight, last, takeRight } from './util/array';
76
import { assign } from './util/object';
87

@@ -18,9 +17,6 @@ const {
1817
mapValueInRange
1918
} = rebound.MathUtil;
2019

21-
22-
const transformPrefix = getVendorPrefix('transform');
23-
2420
const optionTypes = {
2521
pushView: {
2622
view: React.PropTypes.element.isRequired,
@@ -132,9 +128,9 @@ class NavigationController extends React.Component {
132128
const prevView = this.refs[`view-wrapper-${prev}`];
133129
const nextView = this.refs[`view-wrapper-${next}`];
134130
requestAnimationFrame(() => {
135-
prevView.style[transformPrefix] = `translate3d(${prevX}%,${prevY}%,0px)`;
131+
prevView.style.transform = `translate(${prevX}%,${prevY}%)`;
136132
prevView.style.zIndex = Transition.isReveal(this.state.transition) ? 1 : 0;
137-
nextView.style[transformPrefix] = `translate3d(${nextX}%,${nextY}%,0px)`;
133+
nextView.style.transform = `translate(${nextX}%,${nextY}%)`;
138134
nextView.style.zIndex = Transition.isReveal(this.state.transition) ? 0 : 1;
139135
});
140136
}

src/util/dom.js

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)