这是HTML
<article class="post">
<div class="post-inner">
<div class="post-content">
// stuff here
<button class="order">Order</button>
</div>
<div class="post-content-back">
// stuff here
<button class="back">Back</button>
</div><!-- / .post-back -->
</div>
</article>
我正在使用这个flippy plugin翻转前后视图,但由于某些我无法想象的原因它无法正常工作:
jQuery(".post .order").bind("click",function(e){
e.preventDefault();
jQuery(this).parents(".post-content").flippy({
content:jQuery(this).next().find(".post-content-back"),
direction:"LEFT",
duration:"750",
onStart:function(){
alert("Let's flip");
},
onFinish:function(){
alert("ok, it's flipped :)");
}
});
});
答案 0 :(得分:3)
您需要向background-color
元素提供.post-content
。
该插件在#217行上执行此操作
_Color = convertColor($this.css("background-color"));
它抓住了background-color
属性,如果提供的不默认为rgba(0, 0, 0, 0)
(在Chrome上为我做的话)
当翻转第312行时,使用这样的颜色字符串:
ctx.fillStyle = (_Ang > 90) ? changeColor(_Color_target,Math.floor(Math.sin(rad)*_Light)) : changeColor(_Color,-Math.floor(Math.sin(rad)*_Light));
并在#441行调用changeColor(colorHex,step)
函数,该函数期望颜色为十六进制值。不提供十六进制字符串会导致脚本在尝试从rgba(0, 0, 0, 0)
中提取红色,绿色,蓝色的十六进制值时出现错误,并显示错误Uncaught ReferenceError: g is not defined
该函数尝试将gb
用作红色,将a(
用作绿色,将0,
用作蓝色。
添加了demo,但这是一个非常本地化的问题,因此我认为在此答案中内联所有代码并不会有任何好处。
@ tommarshall的回答也非常相关,因为你有一个选择器问题找到.post-content-back
元素。
答案 1 :(得分:2)
这里的问题是您获取内容的方式。
jQuery(this).next().find(".post-content-back"),
这将返回下一个元素(.post-content-back),然后查找其中包含类.post-content-back的元素。然后你返回jQuery对象本身而不是内容。
这是你真正想要的:
jQuery(this).next(".post-content-back").html();
然而,在初始化flippy插件并将其存储在变量中之前获取内容也更好。
这是一个有效的例子 - http://jsfiddle.net/SqD6x/