我需要使用 JavaScript 水平翻转网站正文中的所有文本。 我不想寻找 CSS,我只想使用 JavaScript。
<body>All Texts inside body will flip horizontally</body>
CSS代码是:
.flip {
-moz-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
-o-transform: scaleX(-1);
transform: scaleX(-1);
-ms-filter: fliph; /*IE*/
filter: fliph; /*IE*/
}
提前致谢
也许你可以使用 style.transform 的缩放功能?它仍然操作样式,但不需要内联样式或 css 类。
在 ActionScript 中,我们曾经通过翻转元素的比例来反转/反转它。我现在要研究一下这个问题,看看是否可以获得一些工作代码。
尝试过,缩放有效(一定要记住这一点):
index.html:
<html>
<head>
<script type="text/javascript" src="script.js"></script>
</head>
<body onload="flip_it()">
<div id="flipper">FLIP ME</div>
</body>
</html>
脚本.js:
function flip_it() {
var elem = document.getElementById ( 'flipper' );
elem.style.transform = 'scaleX (-1)'; // horizontal
// elem.style.transform = 'scaleY (-1)'; // vertical
// elem.style.transform = 'scale ( 1, -1 ) // X and Y
}
唯一的副作用是,如果文本左对齐,它会翻转整个元素,因此它现在看起来右对齐。因此,反转对齐方式并翻转它(可能是我会做的),或者将其居中,或者调整元素的宽度(如果元素仅与它按预期翻转的文本一样宽)。
transform 还有一个旋转功能,但我快速尝试了一下,它似乎并没有“正常工作”:
document.getElementById( 'yourdiv' ).style.transform = '旋转(90deg)';
要仅使用纯Javascript水平翻转文本,我们可以通过一些方法和正则表达式的组合来实现。
这是一个例子
function fliptext(word){
var text = word
text = text.replace(/\r/gi,'');
text = text.replace(/([^a-z 0-9\n])/gi,' $1 ');
text = text.split('\n').reverse().join('\n');
text = text.split('').reverse().join('');
text = text.replace(/ ([^a-z 0-9\n]) /gi,'$1');
return text;
}
console.log(fliptext("Nice Game")); // emaG eciN