【问题标题】:Bootstrap 3 CSS menu collapse extra small windowBootstrap 3 CSS菜单折叠超小窗口
【发布时间】:2016-01-18 21:30:47
【问题描述】:

首先我的问题是:如何让我的菜单在超小屏幕中折叠?

这里有更多信息:我正在使用 Joomla 3.4.x 构建一个网站。我制作了自己的 Bootstrap 3 模板。这是测试服务器的 URL:http://chjc.nl.testbyte.nl

除了超小的设备外,菜单按计划工作:当我打开页面时,菜单应该隐藏。然后应该在我单击右上角的“汉堡包按钮”时显示。相反,它总是显示并占据大部分智能手机屏幕。如何让它在加载页面时折叠?

我什至不确定这是一个 CSS 问题,还是 jQuery、Bootstrap 或你有什么......

提前谢谢,

汤姆 汤姆斯特丹.nl

【问题讨论】:

  • 嗨,我想你的标记很好,这是一个工作演示 (jsfiddle.net/t4ym3/101/embedded/result)。但是,我可以看到一些 JavaScript 错误,如果问题没有解决,介意修复它并回复我们吗?
  • 感谢拉贾。我查看了 javascript 并在我的 Web 开发控制台中发现了一些错误消息。问题是:我对javascript和/或jQuery一无所知。所以如果有人可以调试它,请帮忙。

标签: css twitter-bootstrap-3 collapse


【解决方案1】:

您需要正确组织和构建 HTML。问题是你的混合和包括脚本,风格到处都是。顺序很重要。

Javascript 错误 $ is not a function 是因为您使用的是 jQuery.noConflict(); 所以而不是这样做:

$(function() {
 $('[data-rspnsv]').rspnsv({
    delay: 200,
    duration: 3000
  });
});

将其更改为(将$ 替换为jQuery

jQuery(function() {
 jQuery('[data-rspnsv]').rspnsv({
    delay: 200,
    duration: 3000
 });
});

或者

jQuery(...).slabText is not a function 据我所知,您在声明函数jQuery("h1.slabbed").slabText({..}) 时没有添加对插件的先前引用。等等.. 我还建议不要将您的 JavaScript 内联并考虑按如下方式组织您的函数:

var $Slabbed = jQuery("h1.slabbed"),
$Carouselitem = jQuery(".carousel");

window.myApp = {

SlabText : function(){
    if($Slabbed.length > 0){
        $Slabbed.slabText({
            viewportBreakpoint: 380,
            minCharsPerLine: 10
        });
    }
},
Carousel: function(){
    if($Carouselitem.length > 0){
        $Carouselitem.carousel({
            interval: 15e3,
            pause: "hover"
        });
    }
},
Init : function(){

    // Init SlabText
    myApp.SlabText();

    // Init Carousel
    myApp.Carousel();
}
};

jQuery(document).ready(function () {
  myApp.init();
});

关于您的navbar,我在复制您的示例时没有问题。但是,我看到三个bootstrap.min.css 文件-什么是什么??

<head></head> 部分尝试此操作并仅添加您的 CSS 并保留 JS 以供以后使用

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/vendor.css"/>
<link rel="stylesheet" href="css/template-styles.css"/>
<link rel="stylesheet" href="css/custom.css"/>
  • bootstrap.min.css - 暂时保留引导程序,以免弄乱默认样式。一旦你足够成熟,你就可以随心所欲地调整它
  • vendor.css - 插件/供应商
  • template-styles.css - 您的模板样式
  • custom.css - 您自己的自定义样式

然后在您的 &lt;body&gt; 结束标记之前添加您的 JS 并调用您的 App.init();

<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/1.2.1/jquery-migrate.min.js"></script>
<script type="text/javascript" src="js/jquery-noconflict.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/plugins.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript">
  jQuery(document).ready(function () {
      App.init();
});
</script>
</body>

演示 JSFiddle - 尝试调整浏览器大小

请不要进行复制/粘贴编程,因为此演示不能解决您的问题。我正在从 CDN 加载引导库,并添加了您的自定义样式,其中还包含引导程序的默认样式。这是一团糟。如前所述,您需要清理所有样式!这只是一个概念证明,您的 navbar 标记是正确的并且可以正常工作。

【讨论】:

  • Raja:非常感谢您所做的一切。我早该告诉你的。今天我们在chjc.nl 推出了这个网站,正如你想象的那样,我必须设置我的优先级,而智能手机菜单不在列表的顶部。我已经查看了您的建议,并且能够从我从其他人那里复制的 app.js 中删除一些 javascript,但只是在无知中。当我查看它时,我修剪了文件,只保留了“滚动时缩小导航栏”位。
  • 我不知道你对Joomla有多了解,但是很多扩展都添加了自己的js和css,所以你看到3个文件叫bootstrap.min.css。只有 /templates/thomsterdam-bootstrap-3/css/bootstrap.min.css 包含整个网站的样式,其他的用于 2 个扩展。我已经非常广泛地编辑了引导 css,因此我有自己的 bootstrap.min.css。我将研究您建议的压缩选项,为此有许多 joomla 扩展。我还将研究您的小提琴样本,并希望解决智能手机菜单问题。还有人感兴趣吗?我愿意接受建议。
猜你喜欢
  • 2014-12-08
  • 2015-01-18
  • 1970-01-01
  • 2015-11-25
  • 2023-03-28
  • 1970-01-01
  • 2014-07-18
  • 2013-08-09
  • 1970-01-01
相关资源
最近更新 更多