我想将类别图标添加到Wordpress页面,每个图标用snap.svg动画。将javascript添加到类选择的Wordpress循环中
- 我在打印页面(index.php)的循环中添加了div和svg。所有div都显示svg的大小,但空白。
- svg有一个由js文件定位的类。
- js文件被加载并且自行运行正常,但动画只出现在该类的第一个div中,相互打印的次数多达循环次数(实际页面上有多少帖子从那一类)。
我添加了“each()”和js的开头,但没有在其正确位置分配动画。我也尝试为svg位置添加双“each()”,并将snap对象添加到svg中,但那也不起作用。
我试图添加唯一的id到每个svg与post-id,但我无法将id从循环内部传递到js文件。我经历了许多可能的解决方案,我在这里和其他地方都找到了,但没有一个可以适应,因为我的php和js太穷了。
如果你知道我该如何解决这个问题,请回答我。谢谢!
//这是js代码(有点修剪,因为道路是漫长许多随机量,但一切是存在的):
jQuery(document).ready(function(){
jQuery(".d-icon").each(function() {
var dicon = Snap(".d-icon");
var dfirepath = dicon.path("M250 377 C"+ ......+ z").attr({ id: "dfirepath", class: "dfire", fill: "none", });
function animpath(){ dfirepath.animate({ 'd':"M250 377 C"+(Math.floor(Math.random() * 20 + 271))+ .....+ z" }, 200, mina.linear);};
function setIntervalX(callback, delay, repetitions, complete) { var x = 0; var intervalID = window.setInterval(function() { callback(); if (++x === repetitions) { window.clearInterval(intervalID); complete();} }, delay); }
var dman = dicon.path("m136 ..... 0z").attr({ id: "dman", class:"dman", fill: "#222", transform: "r70", });
var dslip = dicon.path("m307 ..... 0z").attr({ id: "dslip", class:"dslip", fill: "#196ff1", transform:"s0 0"});
var dani1 = function() { dslip.animate({ transform: "s1 1"}, 500, dani2); }
var dani2 = function() { dman.animate({ transform: 'r0 ' + dman.getBBox().cx + ' ' + dman.getBBox(0).cy, opacity:"1" }, 500, dani3); }
var dani3 = function() { dslip.animate({ transform: "s0 0"}, 300); dman.animate({ transform: "s0 0"}, 300, dani4); }
var dani4 = function() { dfirepath.animate({fill: "#d62a2a"}, 30, dani5); }
var dani5 = function() { setIntervalX(animpath, 200, 10, dani6); }
var dani6 = function() { dfirepath.animate({fill: "#fff"}, 30); dman.animate({ transform: "s1 1"}, 100); }
dani1(); }); });
如果你发布完整的JS代码段,会有所帮助。使用一个'.each()'是正确的方法,但可能你在代码下面做错了什么。 – MacK
谢谢。我上传了代码,没有长路径代码。 – Helga