Skip to content

Commit a87f87b

Browse files
authored
CSS2DRenderer: Round values used for translation. (#21416)
* Fixes #21415 * Built the modules for #21415 * Added check for Safari before using changed code
1 parent 9080966 commit a87f87b

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

examples/js/renderers/CSS2DRenderer.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,13 @@ THREE.CSS2DRenderer = function () {
9393

9494
var element = object.element;
9595

96-
element.style.transform = 'translate(-50%,-50%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)';
96+
if ( /apple/i.test( navigator.vendor ) ) {
97+
// https://github.com/mrdoob/three.js/issues/21415
98+
element.style.transform = 'translate(-50%,-50%) translate(' + Math.round( vector.x * _widthHalf + _widthHalf ) + 'px,' + Math.round( - vector.y * _heightHalf + _heightHalf ) + 'px)';
99+
} else {
100+
element.style.transform = 'translate(-50%,-50%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)';
101+
}
102+
97103
element.style.display = ( object.visible && vector.z >= - 1 && vector.z <= 1 ) ? '' : 'none';
98104

99105
var objectData = {

examples/jsm/renderers/CSS2DRenderer.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,13 @@ var CSS2DRenderer = function () {
9999

100100
var element = object.element;
101101

102-
element.style.transform = 'translate(-50%,-50%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)';
102+
if ( /apple/i.test( navigator.vendor ) ) {
103+
// https://github.com/mrdoob/three.js/issues/21415
104+
element.style.transform = 'translate(-50%,-50%) translate(' + Math.round( vector.x * _widthHalf + _widthHalf ) + 'px,' + Math.round( - vector.y * _heightHalf + _heightHalf ) + 'px)';
105+
} else {
106+
element.style.transform = 'translate(-50%,-50%) translate(' + ( vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - vector.y * _heightHalf + _heightHalf ) + 'px)';
107+
}
108+
103109
element.style.display = ( object.visible && vector.z >= - 1 && vector.z <= 1 ) ? '' : 'none';
104110

105111
var objectData = {

0 commit comments

Comments
 (0)