从左到中创建动画

玩具

我需要创建一个动画,使菜单从屏幕的左侧出现。该动画应通过单击按钮开始。菜单的内容应恢复55%主页面的宽度。

JSFiddle演示

在上一个链接中,您可以将菜单和按钮向左移动。首先,应该隐藏菜单(带有“链接”元素),并且按钮.glyhicon应位于页面的最左侧。
单击此按钮后,菜单和按钮应移至右侧并恢复55%主页。
问题是我不知道该怎么做。(我通过更改结构设法移动了菜单,但无法移动按钮。)这是我的HTML代码

<div id="left-menu">
    <div id="map-menu" class="test">
      <nav class="menu_content">
        <ul>
          <li>Link</li>
          <li>Link</li>
          <li>Link</li>
          <li>Link</li>
        </ul>
      </nav>
    </div>
    <div id="icon-menu" class="test">
      <button id="button_menu" class="js-menu menu" type="button">
        <span class="glyphicon glyphicon-map-marker"></span>
      </button>
    </div>
  </div>

CSS:

#left-menu {
  position: fixed;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
#map-menu, #icon-menu {
  display: inline-block;
  vertical-align: middle;
}

.menu {
  background: 0;
  float: left;
  margin: 2rem;
  height: 2.7rem;
  width: 3.5rem;
  z-index: 2;
  outline: 0;
  padding: 0;
  border: 0;
}

.menu_content{
  width: 60%;
  height: 100%;
  background: #eaeaea;
  position: fixed;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.56, 0.1, 0.34, 0.91);
  transition: -webkit-transform 0.6s cubic-bezier(0.56, 0.1, 0.34, 0.91);
  transition: transform 0.6s cubic-bezier(0.56, 0.1, 0.34, 0.91);
  transition: transform 0.6s cubic-bezier(0.56, 0.1, 0.34, 0.91), -webkit-transform 0.6s cubic-bezier(0.56, 0.1, 0.34, 0.91);
  padding-top: 6.2rem;
  z-index: 1;
}

.menu-open nav {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}

.menu_content ul {
  margin: 0;
  list-style: none;
  padding: 0;
}
.menu_content ul li {
  padding: 20px 5px;
  font-size: 2rem;
}
.menu_content ul li:hover {
  background: blue;
}

javascript:

var isActive = false;

$('.js-menu').on('click', function() {
    if (isActive) {
        $(this).removeClass('active');
        $('#left_menu').removeClass('menu-open');
    /*$('#button_menu').removeClass('move-right');
    $('#button_menu').addClass('move-left');*/
    } else {
        $(this).addClass('active');
        $('#left_menu').addClass('menu-open');
    /*$('#button_menu').removeClass('move-left');
    $('#button_menu').addClass('move-right');*/
    }

    isActive = !isActive;
});

您能帮我改编或重做动画吗?

微创

这是一个纯CSS解决方案,它没有任何JavaScript,可以通过使用的:checked隐藏复选框状态display:nonelabelfor复选框应位于#left-menu元素外部,因此可以使用来定位它~

JS小提琴1

#button_menu {
  display: none;
}
.glyphicon {
  width: 40px;
  height: 40px;
  display: inline-block;
  background-image: url('https://cdn1.iconfinder.com/data/icons/basic-ui-elements-round/700/06_menu_stack-2-128.png');
  background-size: 100%;
  position: fixed;
  left: 5px;
  top: 50%;
  transition: all 1s;
  cursor: pointer;
}
#left-menu {
  background-color: orange;
  position: fixed;
  left: -100%;
  width: 55%;
  top: 50%;
  transition: all 1s;
}
#button_menu:checked + .glyphicon {
  left: 55%;
  transition: all 1s;
}
#button_menu:checked ~ #left-menu {
  left: 0;
  transition: all 1s;
}
.menu_content ul {
  margin: 0;
  list-style: none;
  padding: 0;
}
.menu_content ul li {
  padding: 20px 5px;
  font-size: 2rem;
}
.menu_content ul li:hover {
  background: blue;
}
<input type="checkbox" id="button_menu" class="js-menu">
<label for="button_menu" class="glyphicon"></label>
<div id="left-menu">
  <div id="map-menu" class="test">
    <nav class="menu_content">
      <ul>
        <li>Link</li>
        <li>Link</li>
        <li>Link</li>
        <li>Link</li>
      </ul>
    </nav>
  </div>
</div>


这里是一个简单的jQuery解决方案,其中基本上我们有一个变量作为触发标志toggleFlag,如果其值trueleft0,如果触发标志值,而false随后的left-55%-这是菜单宽度运表示,它需要55%的屏幕-,然后.left-menu在左边的值上设置从属动画,然后需要取消触发标志的值。

JS小提琴2

var menuIcon = $('.glyphicon'),
  leftMenu = $('#left-menu'),
  toggleFlag = true;

menuIcon.on('click', function() {
  var leftVal = (toggleFlag) ? '0' : '-55%';
  $('#left-menu').animate({'left': leftVal }, 700);
  toggleFlag = !toggleFlag;
});
.glyphicon {
  width: 40px;
  height: 40px;
  display: inline-block;
  background-image: url('https://cdn1.iconfinder.com/data/icons/basic-ui-elements-round/700/06_menu_stack-2-128.png');
  background-size: 100%;
  position: absolute;
  right: -45px;
  top: 5px;
  cursor: pointer;
}
#left-menu {
  background-color: orange;
  position: fixed;
  left: -55%;
  width: 55%;
  top: 50%;
}
.slideIt {
  color: red;
}
.menu_content ul {
  margin: 0;
  list-style: none;
  padding: 0;
}
.menu_content ul li {
  padding: 20px 5px;
  font-size: 2rem;
}
.menu_content ul li:hover {
  background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div id="left-menu">
  <span class="glyphicon"></span>
  <div id="map-menu" class="test">
    <nav class="menu_content">
      <ul>
        <li>Link</li>
        <li>Link</li>
        <li>Link</li>
        <li>Link</li>
      </ul>
    </nav>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Chrome中从右:0到左:0动画绝对对象

来自分类Dev

有没有办法使输入框中的文本从左对齐到中心过渡有动画效果

来自分类Dev

在SwiftUI中重新创建Twitter的复制到剪贴板动画

来自分类Dev

在python中创建曲率动画

来自分类Dev

在 HTML 中创建 Javascript 动画

来自分类Dev

在Sequelize中创建关联以进行左连接

来自分类Dev

在Sequelize中创建关联以进行左连接

来自分类Dev

如何在启动画面中创建动画?

来自分类Dev

如何在Android中创建“填满”动画

来自分类Dev

更改libgdx中的纹理以创建动画

来自分类Dev

在Unity中创建简单动画的软件

来自分类Dev

如何在JavaFX中创建动画的LineChart?

来自分类Dev

在约束布局中创建和动画视图

来自分类Dev

动画绝对div到左:0然后到右:0并循环

来自分类Dev

根据MVC 5中的本地化设置更改页面方向(从右到左/从左到左)

来自分类Dev

根据MVC 5中的本地化设置更改页面方向(从右到左/从左到左)

来自分类Dev

在WPF中的背后代码中创建闪烁动画

来自分类Dev

将GIF动画插入到Powerpoint 2013中吗?

来自分类Dev

如何在Android中创建运动启动画面?

来自分类Dev

是否可以在CSS3中创建以下动画?

来自分类Dev

如何在gnuplot中按照轨迹创建动画标记点?

来自分类Dev

如何在jQuery中创建链接的延迟动画序列?

来自分类Dev

使用ggplot和R中的地图数据创建动画

来自分类Dev

如何在CSS中创建响应式Sprite Sheet动画?

来自分类Dev

如何从iOS中的动画UIView创建视频(Swift / ObjC)?

来自分类Dev

可以在iOS SpriteKit中创建玻璃破碎动画吗?

来自分类Dev

在QML中创建不透明度动画

来自分类Dev

如何在CSS中创建脉动的发光环动画?

来自分类Dev

如何使用R Markdown在html输出中创建动画

Related 相关文章

  1. 1

    在Chrome中从右:0到左:0动画绝对对象

  2. 2

    有没有办法使输入框中的文本从左对齐到中心过渡有动画效果

  3. 3

    在SwiftUI中重新创建Twitter的复制到剪贴板动画

  4. 4

    在python中创建曲率动画

  5. 5

    在 HTML 中创建 Javascript 动画

  6. 6

    在Sequelize中创建关联以进行左连接

  7. 7

    在Sequelize中创建关联以进行左连接

  8. 8

    如何在启动画面中创建动画?

  9. 9

    如何在Android中创建“填满”动画

  10. 10

    更改libgdx中的纹理以创建动画

  11. 11

    在Unity中创建简单动画的软件

  12. 12

    如何在JavaFX中创建动画的LineChart?

  13. 13

    在约束布局中创建和动画视图

  14. 14

    动画绝对div到左:0然后到右:0并循环

  15. 15

    根据MVC 5中的本地化设置更改页面方向(从右到左/从左到左)

  16. 16

    根据MVC 5中的本地化设置更改页面方向(从右到左/从左到左)

  17. 17

    在WPF中的背后代码中创建闪烁动画

  18. 18

    将GIF动画插入到Powerpoint 2013中吗?

  19. 19

    如何在Android中创建运动启动画面?

  20. 20

    是否可以在CSS3中创建以下动画?

  21. 21

    如何在gnuplot中按照轨迹创建动画标记点?

  22. 22

    如何在jQuery中创建链接的延迟动画序列?

  23. 23

    使用ggplot和R中的地图数据创建动画

  24. 24

    如何在CSS中创建响应式Sprite Sheet动画?

  25. 25

    如何从iOS中的动画UIView创建视频(Swift / ObjC)?

  26. 26

    可以在iOS SpriteKit中创建玻璃破碎动画吗?

  27. 27

    在QML中创建不透明度动画

  28. 28

    如何在CSS中创建脉动的发光环动画?

  29. 29

    如何使用R Markdown在html输出中创建动画

热门标签

归档