我正在学习面向对象的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();
// ...
我正在努力实现以下目标:
- 显示特殊字符,如括号或标点符号
- 当我的类元素的长度>n时,自动返回到下一行
问题:
有没有什么方法可以让使用所有keybord"正常"行为的任务变得更容易?(我首先尝试了textarea-texteditableHTML标签,但用js获取那个家伙的事件并不容易)。
每个输入都赞赏
jQuery在这种情况下非常奇怪:.keyup()
和.keydown()
都会为您提供javascript键代码,而不是像String.fromCharCode()
那样的ASCII键代码。但是,.keypress()
将为您提供正确的值。考虑到这一点,你可以对你的应用程序进行一些细微的更改,它应该可以按预期工作:http://codepen.io/anon/pen/eJpzam.
不过,您可能希望同时处理多个字符,因为此解决方案一次只处理一个字符。