javascript - 字体增加动画不起作用 JavaScript

标签 javascript jquery animation

我正在尝试使用 JavaScript 重新创建一个简单的 jQuery 动画。但这不起作用。如果你告诉我哪里出了问题,我会很高兴,因为对我来说这似乎是对的。预先感谢您!

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("div").animate({fontSize: "100px"}, "slow");
});
</script>
</head>
<body>

<div style="background:#98bf21;height:200px;width:600px;">Hello World</div>

</body>
</html>

下面是 JavaScript 动画:

<!DOCTYPE html>
<html lang="en-US">
<head>
<title>This is a title!!!</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
    <div style="background-color: #98bf21; width: 200px; height: 600px;">Hello World!</div>
    <button onclick="startFontIncrease()">Click me</button>
    <script>
    function startFontIncrease() {
        var element = document.getElementsByTagName("div")[0];
        var fontSize = element.style.fontSize;
        var id = setInterval(increaseFont, 5);
        function increaseFont() {
            if (fontSize == 100) {
                clearInterval(id);
            }
            else {
                fontSize++;
                element.style.fontSize = fontSize;
            }
        }
    }
    </script>
</body>
</html>

最佳答案

转录为纯 JS 存在许多问题。

首先,您还没有在内联样式中设置初始字体大小,因此当您尝试访问它时它是一个空字符串。所以 HTML 应该是这样的:

<div style="background-color: #98bf21; width: 200px; height: 300px; font-size: 12px;">
   Hello World!
</div>

然后,您必须从字体大小增加函数中获取初始字体大小,并且还必须解析它以确保获得数字(而不是“12px”字符串,否则当您尝试时它将是 NaN增加)。

var element = document.getElementsByTagName("div")[0];
var fontSize = parseInt(element.style.fontSize);

function startFontIncrease() {

    var id = setInterval(increaseFont, 5);
    function increaseFont() {
        if (fontSize == 100) {
            clearInterval(id);
        }
        else {
            fontSize++;
            element.style.fontSize = fontSize + 'px';
        }
    }
}

关于javascript - 字体增加动画不起作用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41699723/

相关文章:

javascript - 使用 jquery 进行多文件上传,有限制

javascript - 如何使用 jquery 根据请求的 URL 在 slider 中显示特定幻灯片

javascript - 日期比较无法正常工作

css - 背景图像动画在 Firefox 中不起作用

javascript - 我是否必须为每个 webgl 程序创建单独的缓冲区?

javascript - jQuery animate - 扩展正确的文本内容?

javascript - 使用 threejs 选择、更新和操作 Obj 文件

javascript - Facebook Web App 开发错误

ios - 动画完成 block 运行得太快

ios - 为某些元素设置动画时 UIView 会排除其他元素