3

我对 Web 开发非常陌生,我正在尝试创建一个网页,该网页将在单击按钮时向下延伸。我找到了这个链接,其中包含以下代码:

HTML:

<ul id="myList"><li>Coffee</li><li>Tea</li></ul>

<p id="demo">Click the button to append an item to the list</p>

<button onclick="myFunction()">Try it</button>

JavaScript:

function myFunction()
{
    var node=document.createElement("LI");
    var textnode=document.createTextNode("Water");
    node.appendChild(textnode);
    document.getElementById("myList").appendChild(node);
}

这将添加信息。我想这样做,以便它动画化,而不仅仅是出现。我该怎么办?

任何帮助或教程表示赞赏。谢谢!

4

4 回答 4

0

我建议您使用bootstrap collapse

于 2013-01-13T02:59:41.530 回答
0

您必须阅读一些关于 jQuery 的内容,但这里有一个您想要的内容的描述:jQuery using append with effects

原则是首先创建一个 jQuery 对象,它代表您要附加的元素,确保它具有确保它不会立即可见的样式设置(例如display: none)。

然后将元素附加到页面中(此时由于样式设置,浏览器不会呈现它),最后使用 jQuery 方法将其动画化到视图中。

于 2013-01-13T03:01:45.667 回答
0

最常用的方法是通过 javascript 来控制 CSS 样式,如下所示(这些只是示例):

// controlling the opacity of an element
document.getElementById(yourElementId).style.opacity = 0.5;
// controlling the position(top) of an element
document.getElementById(yourElementId).style.top = 10;

您想为您想要做的任何动画创建一组 javascript,并将该代码放入单击时调用的函数中。淡入效果的示例可能是:

function myFunction()
{
var node=document.createElement("LI");
var textnode=document.createTextNode("Water");

// fade-in effect. The opacity starts from zero, and increases through 10steps.
node.style.opacity = 0;
for (var i=1;i<=10;i++) {
    node.style.opacity = i/10;
}
node.style.opacity = 1;
// end of fade-in effect

node.appendChild(textnode);
document.getElementById("myList").appendChild(node);
}

(还没有彻底测试过,所以可能会不稳定)

我的示例是淡入,但对于任何类型的位置更改或颜色更改或其他任何类型的更改都一样。

于 2013-01-13T03:02:33.483 回答
0

您可以使用Element.animate()。有关更多信息,请阅读

例子:

    const div = document.createElement('div');
    div.innerText = 'text'; 
    otherElenet.appendChild(div);
    div.animate([
        // keyframes
        { opacity: '0' },
        { opacity: '1' }
    ], {
        // timing options
        duration: 1000,
    });

注意,IE不支持

于 2020-09-10T14:26:41.117 回答