【问题标题】:jQuery/Svg : increment value "dur" when key is pressedjQuery / Svg:按下键时增加值“dur”
【发布时间】:2015-03-12 17:34:52
【问题描述】:

我想提高我的元素#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 的初学者 ^^'
任何人都有运行此脚本的解决方案?

【问题讨论】:

    标签: javascript jquery svg increment keycode


    【解决方案1】:

    更改以下行

    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>

    【讨论】:

    • 这正是我想要的。谢谢老兄!
    • 很高兴您发现这个答案很有用!要将我的答案标记为已接受,请单击答案旁边的复选标记以将其从灰色切换为已填充(请参阅stackoverflow.com/help/someone-answers
    猜你喜欢
    • 1970-01-01
    • 2014-01-12
    • 2011-12-17
    • 2023-03-05
    • 2021-10-13
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多