我试图通过按某些东西来改变字体大小。 例如:
我遇到Esc按钮时遇到问题。我知道Esc按钮keyCode是27,但它似乎无法正常工作。我甚至尝试使用onkeyup,但这也没有帮助。基本上当我按下Esc按钮时,它应该将文本返回到30pt的起始位置。我很感激能解决这个问题的任何答案。
<html>
<head>
<style>p{font-size: 30pt;}</style>
</head>
<body onmousedown="changeSize(event)" onkeyup="changeSize(event)">
<p>Text1</p>
<p>Text2</p>
<p>Text3</p>
</body>
<script>
var start = 30;
var min = 10;
var max = 50;
function changeSize(e) {
var b = e.keyCode;
var c = e.button;
var fontSized = document.getElementsByTagName("p");
if (e.altKey){
if (b == 107){
if (start <=max && start >=min){
start += 5;
for (i=0; i<=fontSized.length; i++){
fontSized[i].style.fontSize = start + "pt";
};
}
}
}
if (b == 27){
start = 30;
for (i=0; i<=fontSized.length; i++){
fontSized[i].style.fontSize = start + "pt";
};
}
}
</script>
</html>
答案 0 :(得分:0)
您的if (b == 27) {
位于if (e.altKey) {
区域内,因此仅当按下alt时它才会起作用。
您的代码应如下所示:
if (e.altKey){
if (b == 107){
if (start <=max && start >=min){
start += 5;
for (i=0; i<=fontSized.length; i++){
fontSized[i].style.fontSize = start + "pt";
};
}
}
}
if (b == 27){
start = 30; // start == 30 is a comparator, and does not set start to 30
for (i=0; i<=fontSized.length; i++){
fontSized[i].style.fontSize = start + "pt";
};
}
请注意start == 30
后的if (b == 27)
已更改为start = 30
编辑:在尝试完代码后,一切似乎都正常,但要增加字体大小,您必须执行Alt +&#39; +&#39; (在数字小键盘上!)。你可能想考虑做Alt + Shift +&#39; =&#39;或者只是Alt +&#39; =&#39;
供参考,这是我的代码:
<html>
<head>
<style>p{font-size: 30pt;}</style>
</head>
<body onmousedown="changeSize(event)" onkeyup="changeSize(event)">
<p>Text1</p>
<p>Text2</p>
<p>Text3</p>
</body>
<script>
var start = 30;
var min = 10;
var max = 50;
function changeSize(e) {
var b = e.keyCode;
var c = e.button;
var fontSized = document.getElementsByTagName("p");
if (e.altKey) {
if (b == 187){ // Now the combination is Alt + '='
if (start <=max && start >=min){
start += 5;
for (i=0; i<=fontSized.length; i++){
fontSized[i].style.fontSize = start + "pt";
};
}
}
}
if (b == 27){
start = 30;
for (i=0; i<=fontSized.length; i++){
fontSized[i].style.fontSize = start + "pt";
};
}
}
</script>
</html>
答案 1 :(得分:0)
通常在这些情况下,您需要阻止事件传播,因为它会遍历所有父项,直到它到达浏览器。