使用 jQuery 在切换时旋转图像

Posted

技术标签:

【中文标题】使用 jQuery 在切换时旋转图像【英文标题】:Rotate image on toggle with jQuery 【发布时间】:2012-12-09 13:49:05 【问题描述】:

相关网站:http://mtthwbsh.com

我正在尝试创建一个可折叠的导航,当切换时,箭头指向上方(隐藏时指向下方)。

我一直在阅读有关使用 jQuery 旋转图像的文章,并发现这是我最好的资源:@​​987654322@

我了解这里发生了什么,但我很难用我的标记将其可视化。我的折叠导航的 jQuery 如下:

<script type="text/javascript">
$(document).ready(function()
/* toggle nav */
$("#menu-icon").on("click", function()
    $(".nav").slideToggle();
    $(this).toggleClass("active");
  );
 );
</script>

我想知道是否有人可以帮助解释我如何将这种功能转换为我的插件?

【问题讨论】:

用 jQuery 检查进一步旋转动画:***.com/questions/12062818/… 你也应该看看这个标志动画(:bilol.com.tr 【参考方案1】:

检查一下,也许可以帮助某人http://jsfiddle.net/gkmagvo3/515/

<a class="arrow" href="#">        
    <img class="arrow-img rotate-reset" src="img.png" />        
</a>

一些CSS:

.rotate 
    transform: rotate(-180deg);
    /*transform: rotate(180deg);*/
    transition: .3s;

.rotate-reset 
    transform: rotate(0deg);
    transition: .3s;

还有javascript:

$('.arrow').on("click", function (event) 
    $('.arrow-img').toggleClass('rotate');
    $('.arrow-img').toggleClass('rotate-reset');
);

【讨论】:

我建议使用三次贝塞尔过渡来使它更漂亮transition: .3s cubic-bezier(.17,.67,.21,1.69);jsfiddle.net/6tt38q2q/2【参考方案2】:

实际上只是向元素添加了一些 CSS。您可以在样式表中创建一个类:

.rotate 
    -webkit-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);

然后只需使用切换类来添加/删除它。

这不会提供任何动画。 CSS3 过渡甚至可以为您做到这一点,而无需 javascript 来制作动画。想试试看this,里面有 JSFiddle 演示。

编辑

这里有一个演示如何在两个方向上执行 CSS 过渡:

http://jsfiddle.net/jwhitted/NKTcL/

【讨论】:

我了解如何应用 CSS3 转换,我在我的徽标上使用了一个,我只是在点击时无法附加它是我的问题。我会继续处理这些笔记。 把它放在你的点击函数中应该可以工作:$("#menu-icon").toggleClass("rotate"); 如果它不起作用,你有 jsfiddle 或其他网站我可以看看吗? 只是我在上面发布的网址。由于我正在旅行,我将无法回到它,但会记住您的笔记,感谢您的帮助! 你有我给.toggleClass("rotate"); 的代码,但是我在你的样式表中没有看到rotate 类。尝试添加我在您的样式表的答案中发布的 CSS 部分,看看是否可以解决问题。 正要编辑我的最后一条评论,你可能看到它,因为我正在这样做,但这一切似乎都有效(我添加了一个似乎不起作用的过渡时间当你关闭导航时,有什么线索吗?但这对用户体验并不太有害)。感谢您的帮助!

以上是关于使用 jQuery 在切换时旋转图像的主要内容,如果未能解决你的问题,请参考以下文章

jquery拖动并旋转到角度

Jquery 在单击图像时切换

使用 jQuery 切换 DIV 背景图像

如何旋转图像并保存图像

jQuery旋转(按度旋转)背景图像

JQuery在多个图像的鼠标悬停时切换可见性