如何使用JavaScript水平翻转文本?

问题描述 投票:0回答:2

我需要使用 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*/
}

提前致谢

javascript flip
2个回答
3
投票

也许你可以使用 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)';


0
投票

要仅使用纯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
© www.soinside.com 2019 - 2024. All rights reserved.