向Javascript对象返回属性值
我需要将“数据动画”和“数据速度”的属性值返回给对象。在该对象中,这些字符串值应传递给duration:$speedFX和name:$nameFX,但未定义。请查看下面的代码和链接以供参考向Javascript对象返回属性值,javascript,Javascript,我需要将“数据动画”和“数据速度”的属性值返回给对象。在该对象中,这些字符串值应传递给duration:$speedFX和name:$nameFX,但未定义。请查看下面的代码和链接以供参考 样品 样品 样品 //全局变量 var$elemClass=$(“.balloon.fxballoon”); 变量fxBalloon={ elem:$elemClass,//类或Id 名称:$nameFX,//设置气球动画的选项名称 持续时间:$speedFX,//设置速度选项 延迟:“缓进缓出”//设置
样品
样品
样品
//全局变量
var$elemClass=$(“.balloon.fxballoon”);
变量fxBalloon={
elem:$elemClass,//类或Id
名称:$nameFX,//设置气球动画的选项名称
持续时间:$speedFX,//设置速度选项
延迟:“缓进缓出”//设置缓进缓出选项
count:“infinite”//设置一个无限循环
动作:“暂停”//设置播放或暂停动作
$nameFX:function(){
数据动画();
},
$speedFX:function(){
数据表化();
},
$animationFX:function(){
$(this).each(function(){//迭代对象控制器
setAnimation(this.elem、this.name、this.duration、this.delay、this.count、this.action);
});
}
};
fxBalloon.$animationFX();
//循环以从DOM获取数据速度属性值
函数数据表(){
对于(变量i=0;i<$elemClass.length;i++){
//log($elemClass[i].getAttribute(“数据速度”);
$elemClass[i].getAttribute(“数据速度”);
}
}
//循环以从DOM获取数据动画属性值
函数dataAnimation(){
对于(变量i=0;i<$elemClass.length;i++){
返回$elemClass[i].getAttribute(“数据动画”);
}
}
//用于CSS将样式设置为DOM动画的对象构造
函数setAnimation(元素、名称、持续时间、延迟、计数、动作){
$(elem).css({“-webkit动画”:name+“”+duration+“”+delay+“”+count});
$(elem).css({“-moz动画”:name+“”+duration+“”+delay+“”+count});
$(elem).css({“-o-animation”:name+“”+duration+“”+delay+“”+count});
$(elem).css({“animation”:name+“”+duration+“”+delay+“”+count});
$(elem).css({“动画播放状态:”:action});
}
有没有办法获取html属性数据动画和数据动画的值,并将它们应用于对象fxballoon中的名称和持续时间值,我有一个for循环函数,可以迭代获取属性。我想能够控制的持续时间在不同的速度(例如:6s.5s,4s)拉从数据速度功能。与对象中的名称值相同(例如:b_layer1、b_layer2、b_layer3)。改为在对象外部运行循环。我已将循环置于对象外部。当我在对象中调用该对象时,该对象返回为未定义。
<div class="container">
<div class="balloon">
<div class="fxballoon" data-animate="b_layer1" data-speed="6s">
<span>sample</span>
</div>
<div class="fxballoon" data-animate="b_layer2" data-speed="5s">
<span>sample</span>
</div>
<div class="fxballoon" data-animate="b_layer3" data-speed="3s">
<span>sample</span>
</div>
</div>
</div>
//Global Var
var $elemClass = $(".balloon .fxballoon");
var fxBalloon = {
elem : $elemClass,//Class or Id
name :$nameFX, //Sets Option Name for Balloon Animation
duration : $speedFX, //Sets Option for Speed
delay : "ease-in-out", //Sets Option for Easing
count : "infinite", // sets an Infinite Loop
action : "paused", // Sets the Play or Pause Action
$nameFX: function() {
dataAnimation();
},
$speedFX: function() {
dataSpeedAnimation();
},
$animationFX: function() {
$(this).each(function() { //Iterates over the object FxController
setAnimation(this.elem,this.name,this.duration,this.delay,this.count,this.action);
});
}
};
fxBalloon.$animationFX();
// loops to get the data-speed attribute value from DOM
function dataSpeedAnimation(){
for( var i = 0; i < $elemClass.length;i++){
// console.log($elemClass[i].getAttribute("data-speed"));
$elemClass[i].getAttribute("data-speed");
}
}
// loops to get the data-animate attribute value from DOM
function dataAnimation(){
for( var i = 0; i < $elemClass.length;i++){
return $elemClass[i].getAttribute("data-animate");
}
}
// Object Construct for CSS to animate styles to DOM
function setAnimation(elem, name, duration, delay, count, action) {
$(elem).css({ "-webkit-animation": name + " "+ duration + " "+ delay + " "+ count });
$(elem).css({ "-moz-animation": name + " "+ duration + " "+ delay + " "+ count });
$(elem).css({ "-o-animation": name + " "+ duration + " "+ delay + " "+ count });
$(elem).css({ "animation": name + " "+ duration + " "+ delay + " "+ count});
$(elem).css({ "animation-play-state:": action});
}
var fxBalloon = {
elem : $elemClass,//Class or Id
name :"ease-in-out", //Sets Option Name for Balloon Animation
duration : "ease-in-out", //Sets Option for Speed
delay : "ease-in-out", //Sets Option for Easing
count : "infinite", // sets an Infinite Loop
action : "paused", // Sets the Play or Pause Action
$nameFX:
dataAnimation(),
$speedFX:
dataSpeedAnimation(),
$animationFX: function() {
$(this).each(function() { //Iterates over the object FxController
dataSpeedAnimation();
setAnimation(this.elem,this.name,this.duration,this.delay,this.count,this.action);
});
}
};
fxBalloon.$animationFX();