3

我正在学习面向对象的javascript。由于我对排版充满热情,因此我正在制作一个 OO js 简单的 HTML 类型编辑器,它可以聆听按键的“持续时间”,以便使用特定的字体变化来修改每个字母的重量。

到目前为止,我有一个可以在 codepen 上实时看到的工作版本:http://codepen.io/Pggo/pen/vLNKve只需在键盘上输入几个字母,在不同的持续时间内敲击按键进行测试!

代码示例:我的 js 文件(请参阅 codepen 上的完整代码):

    // ...
    // get duration of the key pressed event
    var duration = ( e.timeStamp - pressed[e.which] ) / 1000;

    // use .fromCharcode to get the alphabetical equivalent of the .which notation
    var letter = String.fromCharCode(e.which);

    // convert letter to lowercase (comes in uppercase)
    var lowerCaseLetter = letter.toLowerCase();
    // ...

我正在努力实现以下目标:

  • 显示特殊字符,例如括号或标点符号。
  • 当我班级的元素的.length > n 时自动返回到下一行。

问题:

有什么方法可以使使用所有键盘“正常”行为的任务更容易?(我首先尝试使用 textarea texteditable HTML 标签,但是用 js 获取那个家伙的事件并不容易)。

每一个输入表示赞赏

4

1 回答 1

2

在这种情况下,jQuery 很奇怪:.keyup()并且.keydown()都会给你 javascript 键码,而不是像String.fromCharCode()想要的 ASCII 键码。但是,.keypress()会给你正确的价值。考虑到这一点,您可以对您的应用程序进行一些细微的更改,它应该可以按预期工作:http ://codepen.io/anon/pen/eJpzam 。

虽然,您可能希望一次处理多个字符,因为此解决方案一次只能处理一个。

于 2015-12-12T05:46:51.320 回答