我有一个简单的导航栏,大部分是从Bootstrap的导航栏教程中复制过来的. 基本上,我使用Bootstrap类"pe-5"来填充表单(我使用pe-5只是为了更好地演示这一点,如果我可以修复它,我可能会减少它),所以它与导航栏的右侧对齐,与屏幕边缘留出一些空间,并在表单灵活包装时出现一个可折叠的按钮(请原谅我的词汇表,因为我对WebDev和Bootstrap(以及Flexbox)都不熟悉).但是,当按钮折叠时(所以当我收缩窗口直到按钮出现,然后单击折叠按钮时),填充仍然在表单输入和搜索按钮上,它看起来很奇怪和关闭.

有什么方法可以更改折叠项目的css吗?我try 了很多方法,包括更改显示折叠时的css:

#navbarCollapse.navbar-collapse.collapse.show #top-search-form {
padding-left: 0rem;
padding-right: 0rem; 
}

然而,一切似乎都没有改变.我相当肯定我的css路径是正确的,因为更改页边距似乎有效果,但在动画开始时更改了它,所以它看起来像是在折叠时" skip ".无论如何,更改填充不会产生任何影响.我还try 了其他几种我想不起来的css方法.

我也试过使用Java脚本,但它变得非常混乱,我觉得有一个简单得多的解决方案.我try 的是为可折叠按钮何时显示和隐藏添加事件侦听器,并将使用ClassList.Remove()添加/删除pe-5类,但我遇到了一个问题,在调整窗口大小时,如果按钮折叠但隐藏,它仍然被认为是"折叠的",并且 bootstrap 填充类仍然会被删除.然后,我try 向窗口调整大小添加一个事件侦听器,它变得非常混乱,我无法让它像预期的那样工作,因为查找一个元素是否通过flex溢出比我想象的要难得多,我认为这会显著降低页面的速度.

Here is an example of the issue I am having:
https://jsfiddle.net/jbu812os/
Just shrink the screen until the collapse hamburger button appears and click it and it should show that the input search box and search button are not taking up the full collapse width.
Any help would be GREATLY appreciated, thank you!

推荐答案

try 添加这两个jQuery事件处理程序:

$('#navbarCollapse').on('show.bs.collapse', function() {
    $('#top-search-form').removeClass('pe-5')
})

$('#navbarCollapse').on('hidden.bs.collapse', function() {
    $('#top-search-form').addClass('pe-5')
})

我正在使用内置Bootstrap事件,它们似乎起作用了.对于调整大小的问题,您仍然可以使用window.resize事件.大概是这样的:

$(window).resize(function() {
  if($(window).width > 300) {
    $('#navbarCollapse').collapse('hide')
  }
})

这将迫使您的折叠组件在屏幕尺寸大于300px时隐藏.

Javascript相关问答推荐

为什么子组件没有在reaction中渲染?

获取最接近的父项(即自定义元素)

为什么有些库公开了执行相同任务的方法,但每个方法都处于同步/同步上下文中?

Angular material 表多个标题行映射

如何在JavaScript中通过一次单击即可举办多个活动

如何访问react路由v6加载器函数中的查询参数/搜索参数

获取加载失败:获取[.]添加时try 将文档添加到Firerestore,Nuxt 3

通过使用100%间隔时间来代表我们还剩多少时间来倒计时

如何在Javascript中的控制台上以一行形式打印循环的结果

如何让npx在windows中运行js脚本?

setcallback是什么时候放到macrotask队列上的?

查找最长的子序列-无法重置数组

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

从Nextjs中的 Select 项收集值,但当单击以处理时,未发生任何情况

当用户点击保存按钮时,如何实现任务的更改?

如何使用JS创建一个明暗功能按钮?

如何将zoom 变换应用到我的d3力有向图?

为什么当我更新数据库时,我的所有组件都重新呈现?

每次重新呈现时调用useState initialValue函数

如何正确地在ComponentWillUnmount中卸载状态以避免内存泄漏?