软件的用户体验很重要,要抓住用户的心,这篇博文分享一下最近一个项目的UI设计。

我做UI设计是从用户的角度出发的,要去揣摩用户的习惯。

大部分用户都是使用windows操作系统,所以我这套软件的风格也是做成windows式的。

地址:http://121.40.148.178:8080/ 、 用户名:guest,密码:123456

首先看一下首页导航菜单

这个导航菜单其实也是由div拼了来的,另外用css样式调一下就好了,下面给大家看一下加载菜单的代码

      function initStartMenu() {
$('#overlay_startmenu').click(function () {
if ($('#start_menu_panel:visible').length) {
$('#overlay_startmenu').hide();
$('#start_menu_panel').slideUp();
$('.nicescroll-rails').hide();
}
});
$('#start_menu').click(function () {
if ($('#start_menu_panel:visible').length) {
$('#overlay_startmenu').hide();
$('#start_menu_panel').slideUp();
$('.nicescroll-rails').hide();
}
//遮罩层位置和显示
$('#overlay_startmenu').show();
//菜单面板位置
var top = $('#start_menu').offset().top - $('#start_menu_panel').outerHeight() - ;
$('#start_menu_panel').css({ top: top });
$('#start_menu_panel').show();
$('.nicescroll-rails').show();
});
}
//导航一级菜单
var StartmenuJson = "";
function GetStartmenu() {
var index = ;
var html = "";
getAjax("/Home/LoadStartMenu", "", function (data) {
StartmenuJson = eval("(" + data + ")");
$.each(StartmenuJson, function (i) {
if (StartmenuJson[i].ParentId == '9f8ce93a-fc2d-4914-a59c-a6b49494108f') {
html += "<li>";
if (index == ) {
html += "<div class='main_menu leftselected' onclick=\"GetSubmenu('" + StartmenuJson[i].ModuleId + "')\">";
GetSubmenu(StartmenuJson[i].ModuleId);
} else {
html += "<div onclick=\"GetSubmenu('" + StartmenuJson[i].ModuleId + "')\">";
}
html += "<img src='../Content/Images/Icon32/" + StartmenuJson[i].Icon + "' width='32' height='32'>" + StartmenuJson[i].FullName + "";
html += "</div>";
html += "</li>";
index++;
}
});
})
$("#htmlMenu").append(html);
var menuheight = $('.main_menu div').height() * $('.main_menu li').length + $('.main_menu li').length + ;
if (menuheight <= ) {
menuheight =
}
$(".panel-menu").height(menuheight);
$("#main_menu").height(menuheight);
$("#Submenu").height(menuheight);
divniceScroll("#Submenu");
readyIndex();
}
//导航子菜单
function GetSubmenu(ModuleId) {
$("#Submenu").html("");
var html = "";
$.each(StartmenuJson, function (i) {
if (StartmenuJson[i].ParentId == ModuleId) {
var Icon = "";
if (StartmenuJson[i].Icon != "") {
Icon = StartmenuJson[i].Icon;
}
if (IsBelowMenu(StartmenuJson[i].ModuleId) > ) {
html += "<div title='" + StartmenuJson[i].FullName + "' class=\"shortcuticons\" onclick=\"GetSubmenu('" + StartmenuJson[i].ModuleId + "')\"><img src='../Content/Images/Icon32/" + Icon + "'><br />" + StartmenuJson[i].FullName + "</div>";
} else {
html += "<div title='" + StartmenuJson[i].FullName + "' class=\"shortcuticons\" onclick=\"AddTabMenu('" + StartmenuJson[i].ModuleId + "', '" + RootPath() + StartmenuJson[i].Location + "', '" + StartmenuJson[i].FullName + "', '" + StartmenuJson[i].Icon + "','true');\"><img src='../Content/Images/Icon32/" + Icon + "'><br />" + StartmenuJson[i].FullName + "</div>";
}
}
});
$("#Submenu").html(html);
}
//判断是否有子节点
function IsBelowMenu(ModuleId) {
var count = ;
$.each(StartmenuJson, function (i) {
if (StartmenuJson[i].ParentId == ModuleId) {
count++;
return false;
}
});
return count;
}

以上就是页面上去加载菜单的代码,那后台要写些什么东西呢?获得一下菜单信息就好了,我们把菜单的图标、名称、路径都存在数据库里,后台写个方法取出来转成Json让上面这个JS方法去调用就好了。

下面这个是列表页,表格插件用的是jqgrid,看起来还不错加载速度也蛮快的

下面这个是弹出窗,看起来是不是有点像windows窗口了。

这里是以另外一种方式显示人员信息,用图片加数据显示明细。其实这里也是先把数据取出来,然后再组成一个个的div,div好控制,图片文字都可以放。

以下这个也是同样的道理,点击后更新了一下div的图标,我们就看到了下面的小勾勾

是的,学会了使用div排版真的是很方便,这个容器什么都可以放,左边弄了个tree出来

看看一面的下拉框,其实也是动态加载出来的,使用div+css+ajax界面真的可以做得很灵活,用户体验也非常好。

ASP.NET MVC快速开发框架清新简洁界面设计,有兴趣可以模仿参考的更多相关文章

  1. ASP.NET MVC快速开发框架FastExecutor开发全过程感受及总结

    困境 追溯到2018年5月份,是个炎热的夏天,毕业后1年7个月我提出了离职,原因是受不了原来公司过度的封装框架感觉一年多毫无进步与实施天天轰炸般的电话,偶然间出去面试了一次发现自己知识真的是比较局限, ...

  2. ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets(转)

    jqwidgets.js: 是一个功能完整的框架,它具有专业的可触摸的jQuery插件.主题.输入验证.拖放插件.数据适配器,内置WAI-ARIA(无障碍网页应用)可访问性.国际化和MVVM模式支持. ...

  3. ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets

    jqwidgets.js: 是一个功能完整的框架,它具有专业的可触摸的jQuery插件.主题.输入验证.拖放插件.数据适配器,内置WAI-ARIA(无障碍网页应用)可访问性.国际化和MVVM模式支持. ...

  4. MVC 快速开发框架

    ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets jqwidgets.js: 是一个功能完整的框架,它具有专业的 ...

  5. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  8. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. 正式进入搭建OpenStack

    部署mariadb数据库 控制节点: yum install mariadb mariadb-server python2-PyMySQL -y 编辑: /etc/my.cnf.d/openstack ...

  2. HDU 1798 Tell me the area (数学)

    题目链接 Problem Description     There are two circles in the plane (shown in the below picture), there ...

  3. mysql七:数据备份、pymysql模块

    阅读目录 一 IDE工具介绍 二 MySQL数据备份 三 pymysql模块 一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https:/ ...

  4. date "+Y-%m-%d %H:%M"

     date "+Y-%m-%d %H:%M"    date | awk '{print "Year:"$6  "\t month:"$2  ...

  5. expect基础及实例

    expect基础及实例 http://blog.csdn.net/zhuying_linux/article/details/6900805

  6. IPython Notebook error: Error loading notebook

    打开jupyter突然报错: An unknown error occurred while loading this notebook. This version can load notebook ...

  7. mysql 单列索引限制

    innodb_large_prefix. 这个参数默认值是OFF.当改为ON时,允许列索引最大达到3072. >=5.7.7默认打开 <=5.7.6默认关闭 innodb_large_pr ...

  8. struts标签include传参的问题

    传一个常量过去居然为null, <s:include value="/biz/customer/corp/module/franchisemanageright/corpFranchi ...

  9. 6.flume实战(三)※

    需求:将A服务器上的日志实时采集到B服务器上面去 大致原理: 技术选型: exec source + memory channel + avro sink avro source + memory c ...

  10. poj 2398(叉积判断点在线段的哪一侧)

    Toy Storage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5016   Accepted: 2978 Descr ...