jQuery DIV翻转

时间:2012-09-07 10:31:05

标签: jquery flip flippy

这是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 :)");
        }
    });
});

2 个答案:

答案 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/