【问题标题】:Rotate image in JQuery在 JQuery 中旋转图像
【发布时间】:2014-01-02 16:34:00
【问题描述】:

我使用以下方法在 Jquery 中创建了一个手风琴菜单...

<script type="text/javascript">
            $(document).ready(
                function()
                {
                    $('#menu_list .menu_head').click(
                        function(e)
                        {
                            e.preventDefault();
                            $(this).closest('li').find('.menu_content').not(':animated').slideToggle();

                        }
                    )
                }
            );
        </script>

但是,我想向“单击”函数添加另一个事件处理程序,以便嵌套在 .menu_head 类中的图像在单击时旋转 90 度(因此当菜单展开时从指向右移动到指向下方)。

我已尝试添加以下行:

$(this).find('img').rotate({animateTo:90});

但仍然没有快乐。

有人可以帮忙吗?

谢谢

【问题讨论】:

  • 我认为如果我们也有 HTML 会很有帮助。
  • 嗨,丹尼,这实际上是针对我的网站已经上线的; www.gfloor.co.uk :)

标签: jquery rotation jquery-animate flip image-rotation


【解决方案1】:

您应该能够使用 CSS 过渡来做到这一点。这是一个例子:

.menu_head img{
    -webkit-transition: -webkit-transform 0.5s;
    -moz-transition: -moz-transform 0.5s;
    transition: transform 0.5s;
}

然后使用:

$(this).find('img').css('transform', 'rotate(90deg)');

CSS 代码告诉浏览器在“transform”属性发生更改时对其进行动画处理,并且过渡时间应为 0.5 秒。

它正在运行:http://jsfiddle.net/pTQ5g/1/

更新:要让它与 toggleClass() 一起工作,只需创建一个这样的类:

.menu_head img.rotate90{
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    transform: rotate(90deg);
}

然后使用:

$(this).find('img').toggleClass('rotate90');

这是一个演示:http://jsfiddle.net/pTQ5g/3/

【讨论】:

  • 嗨乔,这是一个很好的答案,谢谢。但是,我希望图像在再次单击时旋转回原始状态。为了向您展示我想要实现的目标,请查看 www.gfloor.co.uk - 这是我正在开发的网站,我希望箭头与手风琴菜单显示/隐藏一致旋转,即旋转 90 度显示时,菜单关闭时返回到默认位置。
  • 我正在尝试使用 .toggleClass() 方法将 .menu_arrow(默认)切换为 .menu_arrow_rotated(90 度旋转),但没有任何乐趣。这种方式可以实现吗?
  • @tom1bomb - 我明白你的意思,我刚刚用解决方案更新了我的答案 - 希望它有所帮助!
  • 谢谢乔,试图投票给你,但仍然是菜鸟 :) 非常感谢!
  • @tom1bomb - 没问题,很高兴它有帮助:)
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 2011-12-10
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多