jQuery翻转div 180度

Posted

技术标签:

【中文标题】jQuery翻转div 180度【英文标题】:jQuery to flip div 180 degrees 【发布时间】:2011-08-29 12:51:45 【问题描述】:

基本上试图展示一系列类似于扑克牌或塔罗牌的牌,每张牌的一侧都有独特的图片或图像,另一侧有文字说明。

加载页面时,图像将首先显示,但单击按钮时,卡片将翻转 180 度以显示卡片/图像的文字说明。

因此,我想这是一个在 3d 中翻转图像同时显示背后的 div 的问题。查看了 Cycle 插件,但不确定是否需要它。

有人有什么想法吗?

【问题讨论】:

看看***.com/questions/382591/… 【参考方案1】:

使用 CSS3 进行旋转:

在 Mozilla Firefox 中,这将是 -moz-transform: rotate(180deg) 在基于 Webkit 的浏览器中,例如 Chrome:-webkit-transform: rotate(180deg) 在歌剧中:-o-transform: rotate(180deg) 在 IE 中:-ms-transform: rotate(180deg)(仅限 IE9) 在pre-IE9中:不太可能,需要使用Matrix Filter

使用jQuery rotate plugin统一所有浏览器差异。

见小提琴:http://jsfiddle.net/garreh/bqYUA/

【讨论】:

抱歉,我不是很清楚 - 我的意思是以 3D 方式翻转 180 度而不是正常旋转。因此,例如,它从图像开始,然后单击翻转/扭曲以显示“卡片”的反面,这是一个与文本大小相同的 div。我猜它需要 html5 Canvas 没有? 您可以通过将图像转换为 90 度(侧面朝上)来伪造它,并稍微倾斜以获得透视效果,然后将图像换成反向图像并继续动画。【参考方案2】:

使用 CSS 和 JQuery,你甚至不需要插件:

180度CSS,支持不同浏览器:

.rotate-180 
    -moz-transform: rotate(180deg);
    -webkit-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    -ms-transform: rotate(180deg);

然后通过 jQuery 使用您选择的触发器简单地切换目标元素的类(我在我的场景中使用 onClick,工作正常!)

<script type="text/javascript">
    $(".myelement").on("click", function() 
        $(this).toggleClass("rotate-180");
    );
</script>

【讨论】:

【参考方案3】:

可能你正在寻找这个:

http://blog.kenmoredesign.com/2009/01/26/flip-plugin-for-jquery/

【讨论】:

@diEcho 确实支持图像翻转,但似乎无法让它在小提琴上工作:jsfiddle.net/garreh/eFqVU/1 - 它只是获取#back 的内容而不是克隆 div 本身。一旦动画完成,它也只会推送该内容。看起来这种效果仅适用于基本 div :| @Gary 可能并不完美,您只需检查他们使用的逻辑并根据需要更改代码:) @diEcho,虽然他们没有任何使用图像的例子,只有基本的 div,所以我想知道这是否可能。你给出的那个链接实际上有什么样的效果?很难说,因为他们提供的演示链接已经失效了 我发现以下内容更简单一些,但可能更适合我的上述目的,因为它在 text/html 方面似乎更具可定制性:jonraasch.com/blog/quickflip-jquery-plugin【参考方案4】:

也许只是通过将一个缩小到无,另一个从无放大来伪造它。

$("#Card_Picture").click(function () 
  $('#Card_Picture').hide("scale", percent: 0, direction: 'horizontal', 1000,function() 
  $('#Card_Text').show("scale", percent: 100, direction: 'horizontal',  from: height:120, width:0, 1000);
  );
);


<div id='Card_Picture' style="float:left; background: green; width: 80px; height: 120px; z-index:2; position:absolute;"></div>
<div id='Card_Text' style="float:left; background: red; width: 80px; height: 120px; z-index:1;position:absolute; display: none"></div>

需要 jQuery UI

【讨论】:

以上是关于jQuery翻转div 180度的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 对 CSS 变换进行动画处理

css旋转180度怎么转

单击div,使其顺时针旋转180°

iOS翻转UIImageView 180度(非动画)

每 180 度后做点啥

使用jQuery滑块旋转(度)图像