我目前正在一个网站上使用 jquery 轻松修改 css 属性和动画。然后该页面将输出代码供用户复制并粘贴到他们的工作中。
我想动态添加输入字段,以便用户可以在动画的“关键帧”中输入自己的参数。
我想知道是否有办法让按钮创建新元素和 jquery 让它运行。目前我已经尝试设置一个变量值以使用按钮递增然后有一个“for”循环来创建新的关键帧元素。
有没有办法用新的关键帧附加以前的关键帧
这是我在为输入字段创建 DOM 节点时需要设置的示例,但我遇到的主要问题是增加“i”的值并仅复制一次代码。
/////////顶部文本输入///////////
var newTop = document.createElement('input')
newTop.type = "text"
newTop.id ="animation_" + i + "_top" // i = 1
newTop.size="10"
newTop.value="100"
newTop.name="animation_" + i +"_top" // i = 1
newTop.textContent = "top";
var refTopSibling = document.getElementById('frame_1')
var refTopParent = refTopSibling.parentNode
refTopParent.appendChild(newTop)
/////////顶部文本输入///////////
var newLeft = document.createElement('input')
newLeft.type = "text"
newLeft.id ="animation_" + i + "_left" // i = 2
newLeft.size="10"
newLeft.value="100"
newLeft.name="animation_" + i +"_left" // i = 2
newLeft.textContent = "left";
var refTopSibling = document.getElementById("animation_" + i + "_top")
var refTopParent = refTopSibling.parentNode
refTopParent.appendChild(newLeft)
问候,
安德鲁
编辑 - - - - - - - - - - - - -
感谢您的回复。不幸的是,它对于 JS fiddle 来说有点大。我只是一个菜鸟,所以这可能不是最优雅的方法,但我使用 if 语句在每次按下时增加变量的当前值......不幸的是它不是动态的,但我有足够的选项来允许 11 个关键帧可以动态添加到 DOM 的动画。
函数 addFrame(){
var n;
if (document.getElementById('frame_1')){n=2};
if (document.getElementById('frame_2')){n=3};
if (document.getElementById('frame_3')){n=4};
if (document.getElementById('frame_4')){n=5};
if (document.getElementById('frame_5')){n=6};
if (document.getElementById('frame_6')){n=7};
if (document.getElementById('frame_7')){n=8};
if (document.getElementById('frame_8')){n=9};
if (document.getElementById('frame_9')){n=10};
if (document.getElementById('frame_10')){n=11};
//这里剩下的代码
}
现在想办法动态绘制 svg 并使用用户输入对其进行动画处理;-)