.click 菜单图标滑入菜单

Posted

技术标签:

【中文标题】.click 菜单图标滑入菜单【英文标题】:.click menu icon to slide in menu 【发布时间】:2013-06-04 18:34:19 【问题描述】:

我正在尝试实现类似的菜单效果,如 etchapps website.

这是尽可能接近的:jsFiddle

$("#openMenu").click(function() 
    var menu = $("#menu");
    if ($(menu).is(":visible")) 
        $(menu).animate(
            width: 0
        , 1000, function() 
            $(menu).hide();
        );
   else 
     $(menu).show().animate(
       width: 200
      , 1000); 
   
);

请帮我把这些物品组合起来达到我想要的效果,谢谢!

【问题讨论】:

你的要求是什么 检查这个小提琴jsfiddle.net/Sa6av/12 【参考方案1】:

示例站点使用 CSS transitions 代替 javascript 来获得所需的效果。看看this jsFiddle。它应该指向正确的方向。

html

<div id="menu">
  <img src="http://m.liveperson.com/themes/images/menu-icon-hd-36-off.png" />
  <nav>
    <a href="home.html">Home</a>
    <a href="work.html">Work</a>
    <a href="contact.html">Contact</a>
    <a href="about.html">About</a>
  </nav>
</div>

CSS:

#menu img 
  cursor: pointer; 
  display: block;
  float: left;
  z-index: 2;
  transition: transform .25s linear;
  -moz-transition: -moz-transform .25s linear;
  -webkit-transition: -webkit-transform .25s linear;
  -o-transition: -o-transform .25s linear;

#menu nav 
  display: inline-block;
  position: relative;
  height: 36px;
  z-index: 1;
  transition: all .25s linear;
  -moz-transition: all .25s linear;
  -webkit-transition: all .25s linear;
  -o-transition: all .25s linear;

#menu.active nav 
  left: -20em;
  opacity: 0;

#menu.active img 
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  transform: rotate(90deg);

JavaScript:

$("#menu img").click(function() 
    $("#menu").toggleClass("active");
);

【讨论】:

菜单是否可以不显示在方形图标后面?谢谢!【参考方案2】:

我知道你的问题提到了 jQuery,但是当我们处理事物的显示方式时,最好尽可能使用 CSS。

这是一个工作版本的演示,您需要在 IE 中检查它,但我很确定它会没事的。在 IE8 中,它会切换菜单而不是滑入(搜索“优雅降级”以找出原因)

HTML

我整理了您的 html 以使其遵循更多最佳实践。

CSS

我让它使用在移动设备上具有硬件支持的过渡(更流畅的动画)

JS

简化为仅切换一个类,另请参见 CSS :target 选择器。

$(".navbar button").click(function() 
    var menu = $("ul").toggleClass('active');
);

http://jsfiddle.net/ymsHb/1/

希望有帮助!

【讨论】:

由于某种原因它适用于 jsFiddle 但不适用于我的实际页面,我的代码是(我是网页设计的新手!): 由于某种原因它适用于 jsFiddle 但不适用于我的实际页面,我的代码是(我是网页设计的新手!):jsfiddle.net/ymsHb/12 @user2406220 给你 :) 我只是让 CSS 和 javascript 选择器更具体一点jsfiddle.net/ymsHb/13 我正在使用 chrome,它仍然只是显示菜单图标,没有做任何事情,但它可以在 jsFiddle 中使用。我有点迷茫 检查 CSS 和 JS 是否不会干扰您网站的其他部分,您需要查看一下有什么冲突的地方。尝试暂时从您的网站中删除内容,直到它起作用:)【参考方案3】:

使用这个 jQuery 插件:http://code.google.com/p/jqueryrotate/wiki/Documentation,我修改了你的小提琴。在这个修改过的小提琴中,我添加了一个外部 js 文件 http://jqueryrotate.googlecode.com/svn/trunk/jQueryRotate.js

要使用这个插件,只需在脚本标签中添加所需的js。

【讨论】:

以上是关于.click 菜单图标滑入菜单的主要内容,如果未能解决你的问题,请参考以下文章

07菜单及右下角小图标的练习

WPF 托盘图标右键弹出的ContextMenu如何关闭

使用 CSS 动画进出

开始菜单图标全白了

php CSS菜单图标/ Wordpress自定义菜单图标

layui模板添加菜单时的图标在哪里