javascript - jquery div滑动效果与另一个div自动调整宽度

标签 javascript jquery html css jquery-ui

我正在尝试 giva 菜单滑入/滑出效果,以便在用户需要时为主要内容提供更多空间 - 更像是 Google 日历汉堡菜单点击行为。

我正在尝试并排放置两个 div。第一个是菜单,第二个是其他内容。使用 jQuery UI 我正在尝试切换第一个 div 的滑动。

两个问题-

  1. 只有当我为第二个 div 指定固定宽度时,我才能将它们并排放置。

    如何让第二个div占用剩余空间?

  2. 只有在滑出第二个 div 完成后才调整其宽度。

    如何使宽度平滑增加?

这是代码 https://codepen.io/coder92/pen/Yjomwd

$(document).ready(function(){
	//adds click function to the hamburger menu
	$( "#menu" ).click(function() {
		$(".menuDiv").toggle('slide');
	});
 }); 
.menuDiv{
  background-color: green;
  width:200px;
  float:left;
}
.contentDiv{
  //width:100%;
  width:500px;
  color:white;
  background-color:blue;
  float:left;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<span id="menu"> toggle </span>

<div>
  <div class="menuDiv">
    Menu
  </div>
  <div class="contentDiv">
    <table>
      <tr>
        <td> data </td>
      </tr>
    </table>
  </div>
</div>

提前致谢!

最佳答案

为了流畅的滑动你可以使用

  • $(".menuDiv").animate({width: 'toggle'}, 350);

并使数据占据页面的其余部分

  • .contentDiv 中移除 float: left;(Float 使元素不占全尺寸)
  • 添加 margin: 0 auto;(这使得数据占据页面的全部其余部分)
  • 添加 overflow: hidden(这会阻止蓝色在绿色下方)

查看: https://codepen.io/Funce/pen/QBeLOr

关于javascript - jquery div滑动效果与另一个div自动调整宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51888005/

相关文章:

html - 如何防止浏览器的宽度影响文本的垂直位置?

javascript - 在使用 Firebase 的 React-native GiftedChat 聊天应用程序中加载早期消息时遇到问题

javascript - 单击按钮时防止表格 tr clickable-row

javascript - 不用递归制作 slider

javascript - jQuery 或 Javascript 客户端图像在上传前调整大小

jquery - 如何在没有 async = false 的情况下执行 jQuery 阻塞 AJAX 调用?

javascript - css 和 js 无法在 Rails 生产模式下工作

javascript - 如何在 jquery slider 内呈现的图像内显示文本

jquery - 将图像 src 绑定(bind)为 Knockout 中的表达式

javascript - 使用 JQuery 隐藏/取消隐藏 DIV