javascript - jQuery/Svg : increment value "dur" when key is pressed

标签 javascript jquery svg increment keycode

我想在按下按键时提高元素#Object 的速度。

HTML 代码:

<path d="M 0,70 A 65,70 0 0,0 65,0 5,5 0 0,1 75,0 75,70 0 0,1 0,70Z" fill="#FF6600">
    <animateTransform id="object" attributeName="transform" type="rotate" from="360 0 0" to="0 0 0" dur="3s" repeatCount="indefinite" />
</path>

脚本:

window.addEventListener("keydown", checkKeyPressed, false);

function checkKeyPressed(e) {
    if (e.keyCode == "38") {
        var getTheSpeed = parseInt(document.getElementById("object").dur, 10);
        getTheSpeed = isNaN(getTheSpeed) ? 3 : getTheSpeed;
        getTheSpeed++;
        document.getElementById("object").dur = getTheSpeed;
    }
}

我的问题是 dur 不仅仅采用数字值。必须指定秒“s”。所以,我实际上不能使用 isNaN 属性:(

我是 JavaScript 初学者 ^^'
有人有运行这个脚本的解决方案吗?
泰<3

最佳答案

更改以下行

var getTheSpeed = parseInt(document.getElementById("object").getAttribute("dur").slice(0,-1), 10);

(这将使用 slice(0,-1) 从“dur”的当前值中删除 s)

document.getElementById("object").setAttribute("dur",String(getTheSpeed) + "s");

(这将设置新的递增值,并使用字符串连接 + "s" 添加 s)

看看这个——希望它有帮助^^

window.addEventListener("keydown", checkKeyPressed, false);

function checkKeyPressed(e) {
    if (e.keyCode == "38") {
        var getTheSpeed = parseInt(document.getElementById("object").getAttribute("dur").slice(0, -1), 10);
        getTheSpeed = isNaN(getTheSpeed) ? 3 : getTheSpeed;
        getTheSpeed++;
        document.getElementById("object").setAttribute("dur", String(getTheSpeed) + "s");
        alert(document.getElementById("object").getAttribute("dur"));
    }
}
<path d="M 0,70 A 65,70 0 0,0 65,0 5,5 0 0,1 75,0 75,70 0 0,1 0,70Z" fill="#FF6600">
    <animateTransform id="object" attributeName="transform" type="rotate" from="360 0 0" to="0 0 0" dur="3s" repeatCount="indefinite" />
</path>

关于javascript - jQuery/Svg : increment value "dur" when key is pressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016561/

相关文章:

javascript - 磁性分区 : fixed div inside absolute positioned div

javascript - 如何使用 d3.js 更改鼠标悬停时的图像

javascript - 单击时更改 SVG 填充覆盖 - jQuery

javascript - 如何在不操纵其他 svg 的情况下使用 CSS 设置 svg 的样式?

javascript - 函数 add(num1, num2) 不工作?

javascript - 我怎样才能获得调用我的函数的节点?

javascript - React-router-dom 嵌套在子组件中不起作用

javascript - Jquery 查找 Active 类并替换该类

javascript - 停止 jquery 函数执行两次

Jquery 将序列化数据放入数组