【AmazeUI】各种的导航式菜单与解决方法

与Bootstrap一样,AmazeUI提供的导航式菜单也是喜欢蜷缩在右上角的一个按钮里面,然后一点击就向下拉开一大段距离。这样很不友好。此前《【AmazeUI】手机版页面的顶部导航条Header与侧边导航栏offCanvas》(点击打开链接)是一种解决方案,但是对于一些不使用页面的页面,这种方案则无能无力。

对于此有如下的几种方案可以解决:

一、改造AmazeUI提供的手机端文字横排菜单

AmazeUI提供的手机端文字横排菜单的背景颜色是白色的,字体是蓝色的,没有提供相应的class去改写里面的字体,

我们可以为背景与文字添加一个css,改写其背景与文字颜色

效果如下:

代码如下:

        <h1>导航菜单-横排文字式</h1>
        <style>
            /*这里是改写文字的颜色*/
            .am-menu-default .am-menu-nav a {
                color:#222;
            }
            /*这里是改写背景的颜色*/
            .am-menu-nav{
                background:#f1f1f1;
            }
        </style>
        <div data-am-widget="menu" class="am-menu  am-menu-default" >
            <a href="javascript: void(0)" class="am-menu-toggle a-in-menu"><i class="am-menu-toggle-icon am-icon-bars"></i></a>
            <!--表示每一个菜单都占3格,也就是在12格1行的布局中占据4格的位置-->
            <ul class="am-menu-nav am-avg-sm-3">
                <!--表示这个项目带下拉菜单-->
                <li class="am-parent">
                    <a href="#">项目1</a>
                    <ul class="am-menu-sub am-collapse am-avg-sm-4">
                        <li><a href="#">项目1-1</a></li>
                        <li><a href="#">项目1-2</a></li>
                        <li><a href="#">项目1-3</a></li>
                        <li><a href="#">项目1-4</a></li>
                        <li><a href="#">项目1-5</a></li>
                        <li><a href="#">项目1-6</a></li>
                    </ul>
                </li>
                <li><a href="#">项目2</a></li>
                <li><a href="#">项目3</a></li>
                <li><a href="#">项目4</a></li>
                <li class="am-parent">
                    <a href="#">项目5</a>
                    <ul class="am-menu-sub am-collapse am-avg-sm-4">
                        <li><a href="#">项目5-1</a></li>
                        <li><a href="#">项目5-2</a></li>
                        <li><a href="#">项目5-3</a></li>
                        <li><a href="#">项目5-4</a></li>
                        <li><a href="#">项目5-5</a></li>
                        <li><a href="#">项目5-6</a></li>
                    </ul>
                </li>

            </ul>
        </div>

二、利用按钮组与下拉按钮

这里运用了解决Bootstrap导航栏的思想,《【Bootstrap】导航栏navbar在IE8上的缺陷与解决方案》(点击打开链接),但是AmazeUI的按钮组与下拉按钮的复合相当不给力。没有提供下拉按钮与按钮复合的按钮组。同时,其栅格化布局也无法约束其下拉按钮的大小,因此,必须自己整几个div,调节其width与margin属性,规范其大小。

效果如下:

代码如下:

        <h1>导航菜单-下拉列表式</h1>
        <style>
            /*让每一个下拉按钮占据的宽度与居中*/
            .am-dropdown{
                width:30%;
                text-align:center;
            }
        </style>
        <!--这里表示一行-->
        <div style="text-align:center; width:100%; margin-left:-1.5%">
            <div class="am-dropdown" data-am-dropdown>
                <button class="am-btn am-btn-primary am-dropdown-toggle" data-am-dropdown-toggle style="width:110%;" >项目1<span class="am-icon-caret-down"></span></button>
                <ul class="am-dropdown-content">
                    <li><a href="#">项目1-1</a></li>
                    <li><a href="#">项目1-2</a></li>
                    <li class="am-divider"></li>
                    <li><a href="#">项目1-3</a></li>
                </ul>
            </div>
            <div class="am-dropdown" data-am-dropdown >
                <button type="button" class="am-btn am-btn-primary" style="width:110%;" onClick="javascript:window.location.href='#'">项目2</button>
            </div>
            <div class="am-dropdown" data-am-dropdown>
                <button class="am-btn am-btn-primary am-dropdown-toggle" data-am-dropdown-toggle style="width:110%;" >项目3<span class="am-icon-caret-down"></span></button>
                <ul class="am-dropdown-content">
                    <li><a href="#">项目3-1</a></li>
                    <li class="am-divider"></li>
                    <li><a href="#">项目3-2</a></li>
                    <li><a href="#">项目3-3</a></li>
                    <li><a href="#">项目3-4</a></li>
                </ul>
            </div>
        </div>
        <!--搞完一行,必须自己再开一行-->
        <div style="text-align:center; width:100%; margin-left:-1.5%">
            <div class="am-dropdown" data-am-dropdown>
                <button type="button" class="am-btn am-btn-primary" style="width:110%;" onClick="javascript:window.location.href='#'">项目4</button>
            </div>
            <div class="am-dropdown" data-am-dropdown >
                <button class="am-btn am-btn-primary am-dropdown-toggle" data-am-dropdown-toggle style="width:110%;" >项目5<span class="am-icon-caret-down"></span></button>
                <ul class="am-dropdown-content">
                    <li><a href="#">项目5-1</a></li>
                    <li><a href="#">项目5-2</a></li>
                    <li class="am-divider"></li>
                    <li><a href="#">项目5-3</a></li>
                    <li><a href="#">项目5-4</a></li>
                </ul>
            </div>
            <div class="am-dropdown" data-am-dropdown>
                <button type="button" class="am-btn am-btn-primary" style="width:110%;" onClick="javascript:window.location.href='#'">项目6</button>
            </div>
        </div>

这里,每一行最好放置3个组件就好,设置css为text-align:center,还要补上一个margin-left:-1.5%才刚好其居中,width:100%占据一行。

其下的各个div占据30%的宽度。接着的各个按钮、下拉按钮其宽度必须是110%,这样才能刚刚配合好原来的样式,把按钮与下拉按钮符合起来。

其中,里面的li class="am-divider"意为分割线。

三、利用无下拉项目的标签页

其实手机里面的导航真的无须使用下拉项目。下拉菜单在手机屏幕上是很难点的。直接利用标签页设置一个导航。代码也短,用户也不会不满意。关键是AmazeUI本来就提供这种布局。然后,你再于这个页面里面布置二级导航也可以。

效果如下:

代码如下:

        <h1>导航菜单-标签页布局</h1>
        <div data-am-widget="tabs" class="am-tabs am-tabs-d2">
            <ul class="am-tabs-nav">
                <li class="am-active"><a href="#">项目1</a></li>
                <li><a href="#">项目2</a></li>
                <li><a href="#">项目3</a></li>
                <li><a href="#">项目4</a></li>
            </ul>
            <ul class="am-tabs-nav">
                <li><a href="#">项目5</a></li>
                <li><a href="#">项目6</a></li>
                <li><a href="#">项目7</a></li>
            </ul>
        </div>

同时,AmazeUI也提供另一种风格的标签页布局,效果如下:

代码如下:

        <h1>导航菜单-标签页极简布局</h1>
        <div data-am-widget="tabs" class="am-tabs am-tabs-default">
            <ul class="am-tabs-nav">
                <li><a href="#">项目1</a></li>
                <li><a href="#">项目2</a></li>
                <li class="am-active"><a href="#">项目3</a></li>
            </ul>
            <ul class="am-tabs-nav">
                <li><a href="#">项目4</a></li>
                <li><a href="#">项目5</a></li>
                <li><a href="#">项目6</a></li>
            </ul>
        </div>

最后贴一下整个页面的效果图与代码:

<!--使用HTML5开发-->
<!doctype html>
<html class="no-js">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!--自动适应移动屏幕-->
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
        <!--优先使用webkit内核渲染-->
        <meta name="renderer" content="webkit">
        <!--不要被百度转码-->
        <meta http-equiv="Cache-Control" content="no-siteapp"/>
        <!--以下才是引入amazeui资源-->
        <link rel="stylesheet" href="assets/css/amazeui.min.css">
        <link rel="stylesheet" href="assets/css/app.css">
        <!--引入js的时候要注意,必须先引入jQuery,再引入amazeui,因为这个框架是基于jQuery开发的-->
        <script src="assets/js/jquery.min.js"></script>
        <script src="assets/js/amazeui.min.js"></script>
        <title>导航菜单</title>
    </head>
    <body>
        <h1>导航菜单-横排文字式</h1>
        <style>
            /*这里是改写文字的颜色*/
            .am-menu-default .am-menu-nav a {
                color:#222;
            }
            /*这里是改写背景的颜色*/
            .am-menu-nav{
                background:#f1f1f1;
            }
        </style>
        <div data-am-widget="menu" class="am-menu  am-menu-default" >
            <a href="javascript: void(0)" class="am-menu-toggle a-in-menu"><i class="am-menu-toggle-icon am-icon-bars"></i></a>
            <!--表示每一个菜单都占3格,也就是在12格1行的布局中占据4格的位置-->
            <ul class="am-menu-nav am-avg-sm-3">
                <!--表示这个项目带下拉菜单-->
                <li class="am-parent">
                    <a href="#">项目1</a>
                    <ul class="am-menu-sub am-collapse am-avg-sm-4">
                        <li><a href="#">项目1-1</a></li>
                        <li><a href="#">项目1-2</a></li>
                        <li><a href="#">项目1-3</a></li>
                        <li><a href="#">项目1-4</a></li>
                        <li><a href="#">项目1-5</a></li>
                        <li><a href="#">项目1-6</a></li>
                    </ul>
                </li>
                <li><a href="#">项目2</a></li>
                <li><a href="#">项目3</a></li>
                <li><a href="#">项目4</a></li>
                <li class="am-parent">
                    <a href="#">项目5</a>
                    <ul class="am-menu-sub am-collapse am-avg-sm-4">
                        <li><a href="#">项目5-1</a></li>
                        <li><a href="#">项目5-2</a></li>
                        <li><a href="#">项目5-3</a></li>
                        <li><a href="#">项目5-4</a></li>
                        <li><a href="#">项目5-5</a></li>
                        <li><a href="#">项目5-6</a></li>
                    </ul>
                </li>

            </ul>
        </div>

        <h1>导航菜单-下拉列表式</h1>
        <style>
            /*让每一个下拉按钮占据的宽度与居中*/
            .am-dropdown{
                width:30%;
                text-align:center;
            }
        </style>
        <!--这里表示一行-->
        <div style="text-align:center; width:100%; margin-left:-1.5%">
            <div class="am-dropdown" data-am-dropdown>
                <button class="am-btn am-btn-primary am-dropdown-toggle" data-am-dropdown-toggle style="width:110%;" >项目1<span class="am-icon-caret-down"></span></button>
                <ul class="am-dropdown-content">
                    <li><a href="#">项目1-1</a></li>
                    <li><a href="#">项目1-2</a></li>
                    <li class="am-divider"></li>
                    <li><a href="#">项目1-3</a></li>
                </ul>
            </div>
            <div class="am-dropdown" data-am-dropdown >
                <button type="button" class="am-btn am-btn-primary" style="width:110%;" onClick="javascript:window.location.href='#'">项目2</button>
            </div>
            <div class="am-dropdown" data-am-dropdown>
                <button class="am-btn am-btn-primary am-dropdown-toggle" data-am-dropdown-toggle style="width:110%;" >项目3<span class="am-icon-caret-down"></span></button>
                <ul class="am-dropdown-content">
                    <li><a href="#">项目3-1</a></li>
                    <li class="am-divider"></li>
                    <li><a href="#">项目3-2</a></li>
                    <li><a href="#">项目3-3</a></li>
                    <li><a href="#">项目3-4</a></li>
                </ul>
            </div>
        </div>
        <!--搞完一行,必须自己再开一行-->
        <div style="text-align:center; width:100%; margin-left:-1.5%">
            <div class="am-dropdown" data-am-dropdown>
                <button type="button" class="am-btn am-btn-primary" style="width:110%;" onClick="javascript:window.location.href='#'">项目4</button>
            </div>
            <div class="am-dropdown" data-am-dropdown >
                <button class="am-btn am-btn-primary am-dropdown-toggle" data-am-dropdown-toggle style="width:110%;" >项目5<span class="am-icon-caret-down"></span></button>
                <ul class="am-dropdown-content">
                    <li><a href="#">项目5-1</a></li>
                    <li><a href="#">项目5-2</a></li>
                    <li class="am-divider"></li>
                    <li><a href="#">项目5-3</a></li>
                    <li><a href="#">项目5-4</a></li>
                </ul>
            </div>
            <div class="am-dropdown" data-am-dropdown>
                <button type="button" class="am-btn am-btn-primary" style="width:110%;" onClick="javascript:window.location.href='#'">项目6</button>
            </div>
        </div>

        <h1>导航菜单-标签页布局</h1>
        <div data-am-widget="tabs" class="am-tabs am-tabs-d2">
            <ul class="am-tabs-nav">
                <li class="am-active"><a href="#">项目1</a></li>
                <li><a href="#">项目2</a></li>
                <li><a href="#">项目3</a></li>
                <li><a href="#">项目4</a></li>
            </ul>
            <ul class="am-tabs-nav">
                <li><a href="#">项目5</a></li>
                <li><a href="#">项目6</a></li>
                <li><a href="#">项目7</a></li>
            </ul>
        </div>

        <h1>导航菜单-标签页极简布局</h1>
        <div data-am-widget="tabs" class="am-tabs am-tabs-default">
            <ul class="am-tabs-nav">
                <li><a href="#">项目1</a></li>
                <li><a href="#">项目2</a></li>
                <li class="am-active"><a href="#">项目3</a></li>
            </ul>
            <ul class="am-tabs-nav">
                <li><a href="#">项目4</a></li>
                <li><a href="#">项目5</a></li>
                <li><a href="#">项目6</a></li>
            </ul>
        </div>

    </body>
</html>
时间: 2024-10-07 03:45:21

【AmazeUI】各种的导航式菜单与解决方法的相关文章

无法录制下拉菜单的解决方法

QTP默认录制方式无法录制下拉菜单,需修改设置后再录制 修改设置如下: 1.Record-> web event recording configuration -----custom settings... 展开Web objects 2.选中webelement,点击event -> add -> .并确定在record栏内,状态是enabled 3.重新录制你的脚本 4.录制完成后,执行脚本,若回放失败,是因为脚本只录制了鼠标的 事件,却没有录制click事件,所以脚本录制完后要手

gvim的菜单乱码解决方法

gvim的菜单乱码解决方法: (乱码是由于系统内码不兼容导致,系统内码包括gb2312 gb18030 utf-8 utf-16[unicode]等) 生成文件 ~/.gvimrc 并添加如下语句:set encoding=chineseset langmenu=zh_CN.GBKset imcmdlineset guifont="Serif 14"source $VIMRUNTIME/delmenu.vimsource $VIMRUNTIME/menu.vim 保存后即可解决乱码问题

Win下Linux虚拟机登陆后屏幕没有菜单的解决方法

解决方法有多种: 1.新建个用户,进去之后,再切换用户,回来之后就可以了. 2.进入命令行,重新安装显卡驱动. 3.手工修改/etc/X11/xorg.conf把缺省分辨率改小再试.

360的N4手机的高德地图导航无放大图的解决方法

目录"\autonavi\data\roadenlarge\"下的文件就是下载的离线放大图,把它搬到 目录"\autonavi\400_400\",即可解决.

关于“Adobe After Effects 2018安装后没法找到自动跟踪菜单 ”的解决方法

刚接触到AE,想学习它的自动跟踪功能,在网上找到了相关视频.但是,在本地下载的AE 2018上面,虽然能够找到自动跟踪功能,但是无法切换上下帧.与教程对比,发现界面参数少了一些功能.如下图         在网上查找很久没有发现解决的办法,还以为是软件没有安装成功.后来摸索出一个方法,解决了该问题: 依次点击,"窗口-->运动跟踪-->将"运动跟踪"重置为已保存布局"即可. 最后效果如下,和教程中的功能菜单一致. 原文地址:https://www.cnb

EditText键盘弹出时,会将布局底部的导航条顶上去(解决方法之一)

这只是其中一种方法android:windowSoftInputMode有很多属性可以添加,必须是一个state...|ajust... 我只是觉得这种比较好用 在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移. <activity android:name=".S_MainActivit

笔记本Win10触控板无法双击弹出快捷菜单怎样解决

现在使用笔记本的朋友越来越多,有朋友就出现自己在使用刚升级Win10系统的笔记本时,想通过触控板双击来打开快捷菜单,但是在双击后没有弹出快捷菜单,而且也没有任何反应.出现这样的问题是怎么回事呢?这里就给大家介绍下笔记本Win10触控板无法双击弹出快捷菜单的具体解决方法吧! 具体步骤如下: 1.在Win10系统中打开注册表编辑器,找到注册表目录项HKEY_CURRENT_USER\SOFTWARE\Elantech\SmartPad; 2.在HKEY_CURRENT_USER\SOFTWARE\E

Web前端开发实战6:CSS实现导航菜单结合二级下拉式菜单的简单变换

前面几篇博文都在讲导航菜单和二级下拉式菜单,其实有很多方法都可以实现的,具体的情况还要视情况而定. 在后面学习到jQuery框架之后,会有更丰富的动画效果,由于在学习Ajax和jQuery的初步阶段,对于很多的复杂的导 航菜单和二级下拉式菜单没法做,但是学习了CSS和JS还是能实现一些简单的变换的.这篇博文就来说说用CSS实现 导航菜单结合二级下拉式菜单的两个简单变换吧. 首先还是在前面博文的基础上加以实现,其实只用HTML和CSS还是可以做出不错的效果,但是相较于JS和 jQuery来说就有很

AJAX实现导航式多条件搜索

导航式搜索在实际网站开发中有很多应用,其实现原理也不复杂,关键是如何记忆所选的条件.常见的方式有存入session.存入数组等.本文采用的是AJAX+数组的方式,在不跳转,不刷新整个页面的条件下动态返回查询结果. 效果图如下: 1.search.jsp 通过将所选的查询条件存入数组,通过AJAX传到后台,这样在后台利用所得到的查询条件,就可以到数据库进行查询了.代码如下: <%@ page language="java"  import="java.util.List;