前端通用框架可行性研究报告之弹窗

1、 研究Web框架的动态加载技术

针对移动互联网环境下移动端内存、流量、电池资源有限,通过使用动态加载技术,将程序文件打散成多个小文件,以延迟加载技术(LazyLoading),实现按需加载提升用户体验,降低移动端的资源使用率。在业务和样式上,前端开发人员只需要在JS代码块头部引用需要的js库和css样式即可。在逻辑上,开发人员只需调用后端提供的接口进行读取与显示。这种技术的主要优点包括可维护性高、动态加载快、前端性能优化好。

2、 研究模块化构建技术

在前端人员开发移动应用项目的基础上,通过使用模块化构建技术,将每个页面分成多个功能进行分块化处理,这样既可快速的实现移动端的页面获取,也可在移动端调试的时候快速定位相关问题。通过定义多个模块来相互调用,既保证了各个模块之间不发生冲突,又提高了开发人员的编码效率。其优点主要是职责单一、依赖就近。

3、 研究多分辨率、多尺寸移动终端界面适配技术

针对移动端的各个终端设备,在基于bootstrap框架的基础上,通过媒体查询功能(Medie Query)来设置统一的样式,通过视窗(meta)属性内容,设置等比例窗口,这样实现了不同手机型号的不同分辨率、不同尺寸终端无法适配的问题,进一步减少代码的冗余和再次开发。

4、 研究移动端公用组件的封装

基于bootstrap框架下一些组件封装的有限,通过对时间插件(datatime)、弹窗插件(dialog)、图形插件(echarts)、下拉刷新上拉加载插件(Refresh)、滑动插件(swiper)、省市区选择 (citypicker) 插件、提示信息插件(UED)等一些插件进行封装,按需调用,按需加载,以做到不同页面引用不同的插件,实现组件的调用,大大减少了前端开发人员的时间,同时也提高了用户体验。

这里,我们就拿其中一个插件——弹窗来讲解

先给大家看看效果图吧

弹窗,基本上每个应用都会用到,而各式各样的弹窗有那么多,许多程序员,这边写一套,那边写一套,代码特别乱,这里我在网上也找了一套,自己单独整理了一下,希望大家以后使用共同的一套代码,做到简洁,简单。

前端h5代码

h5页面要做到简洁,简单,不允许有单独的css和js逻辑代码(下面一句css代码是为了测试使用)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<title>首页</title>
<meta charset="utf-8" />
<style>
.col-xs-6 {
padding: 10px 1px;
}
</style>
</head>
<body>
<div class="container">

<div class="row">
<div class="col-xs-6"><button class="btn has-hover input-reverse-tofull">默认的弹窗</button></div>
<div class="col-xs-6"><button class="btn btn-success has-hover">success</button></div>
<div class="col-xs-6"><button class="btn btn-primary has-hover">primary</button></div>
<div class="col-xs-6"><button class="btn btn-danger has-hover">danger</button></div>
<div class="col-xs-6"><button class="btn btn-warning has-hover">warning</button></div>
<div class="col-xs-6"><button class="btn btn-success has-hover">可设置背景色</button></div>
<div class="col-xs-6"><button class="btn btn-danger has-hover">自定义标题、描述</button></div>
<div class="col-xs-6"><button class="btn btn-danger has-hover">点后回调</button></div>
<div class="col-xs-6"><button class="btn has-hover input-reverse-tofull">box-shadow</button></div>
<div class="col-xs-6"><button class="btn btn-success has-hover">box-shadow</button></div>
<div class="col-xs-6">
<button class="btn btn-primary has-hover">box-shadow</button>
</div>
<div class="col-xs-6"><button class="btn btn-primary has-hover">无进入动画</button></div>
<div class="col-xs-6"><button class="btn btn-warning has-hover">单个按钮</button></div>
<div class="col-xs-6">
<button type="button" class="btn btn-info" id="btn-modal">bootstrap弹窗</button>
</div>
<div class="col-xs-6">
<button type="button" class="btn btn-info" >无标题</button>
</div>
</div>
</div>
<script type="text/html" id="modal-tpl">
<div id="dialogContent">
这里是用户获取到的内容,获取的内容,可直接设置在这里,然后在页面显示
</div>
</script>
<script>
var basepath = "../../";//定义当前目录的位置(如果全部在根目录的话,则不需要定义)</script>
<!--1、首先加载sea.js 我们使用的是模块化来加载文件-->
<script src="../../js/modules/sea.js"></script>
<!--2、然后加载配置项-->
<script src="../../config.js"></script>
<!--3、最后使用seajs.use来加载当前需要加载的模块-->
<script>
seajs.use("../js/dialogs");
</script>
</body>
</html>

上面代码,是用我的通用框架代码,大家如果用到弹窗,可直接引用dialog.js 、dialog.css、jquery.js和dialogtest.js即可

dialogtest.js代码如下

define(function (require) {

    require("bootstrap");//加载bootstrap

    require(‘dialog‘);//加载弹窗 

    require(‘dialogcss‘);//加载弹窗 

  

 

    var modal = new Modal({

        title: ‘测试案例‘,

        content: $(‘#modal-tpl‘).html(),

        width: "90%",

        onOk: function () {

            //操作

            alert("你点击了确定");

        },

        onModalShow: function () {

            //弹窗初始化操作

            

        }

    });

    $(".btn").each(function (index) {

        $(this).on("click", function () {

            if(index==0)

            {

                $(‘body‘).dailog({ type: ‘defalut‘ });

            }else if(index==1)

            {

                $(‘body‘).dailog({ type: ‘success‘ })

            }

            else if (index == 2) {

                $(‘body‘).dailog({ type: ‘primary‘ })

            }

            else if (index == 3) {

                $(‘body‘).dailog({ type: ‘danger‘ })

            }

            else if (index == 4) {

                $(‘body‘).dailog({ type: ‘warning‘ })

            }

            else if (index ==5) {

               $(‘body‘).dailog({ type: ‘success‘, maskBg: ‘rgba(33,11,22,0.5)‘ })

            }

            else if (index ==6) {

                $(‘body‘).dailog({

                    type: ‘danger‘, title: ‘我是自定义标题‘,

                    discription: ‘这里是自定义的描述,可以写上你的描述或者他的描述,总之可以写很多文字,你自己看着办吧‘

                }, function (ret) {

                    if (ret.index == 0)

                    {

                        alert("你点击了确定按钮");

                    } else

                    {

                        alert("你点击了取消操作");

                    }

                    console.log("信息为:"+JSON.stringify(ret));

                })

            } else if (index ==7) {

                $(‘body‘).dailog({

                    type: ‘danger‘, title: ‘错误提示‘,

                    discription: ‘这里是自定义的描述,可以写上你的描述或者他的描述,总之可以写很多文字,你自己看着办吧‘,

                    isInput: true

                }, function (ret) {

                    console.log(ret);

                    if (ret.index === 0)

                    {

                        alert(‘你点击的是第‘ + ret.index + ‘个按钮,状态:‘ + ret.input.status + ‘;输入的值为:‘ + ret.input.value)

                    };

                });

            } else if (index == 8) {

                $(‘body‘).dailog({ type: ‘defalut‘, showBoxShadow: true })

            } else if (index ==9) {

                $(‘body‘).dailog({ type: ‘success‘, showBoxShadow: true, maskBg: ‘#fff‘ })

            } else if (index == 10) {

                $(‘body‘).dailog({ type: ‘primary‘, showBoxShadow: true, maskBg: ‘#ccc‘ })

            } else if (index == 11) {

                $(‘body‘).dailog({ type: ‘primary‘, showBoxShadow: true, animateStyle: ‘none‘ })

            } else if (index == 12) {

                $(‘body‘).dailog({

                    type: ‘warning‘, showBoxShadow: true, animateStyle: ‘none‘,

                    bottons: [‘确定‘], discription: ‘也许有点问题!‘

                })

            }else if(index==13)

            {

                modal.open();

            } else if (index == 14) {

                $(‘body‘).dailog({ type: ‘defalut‘,showBoxShadow: true, animateStyle: ‘none‘,isnobutton:false,

                    bottons: [‘关闭‘], discription: ‘也许有点问题也许有点问题也许有点问题也许有点问题也许有点问题也许有点问题也许有点问题也许有点问题也许有点问题!‘

                });

            }

        })

    })

})

  dialog.js和css ,我打个包,大家想下载就下载用吧

http://files.cnblogs.com/files/dinghouchuanqi/dialog.zip

本文来自http://www.cnblogs.com/dinghouchuanqi/archive/2017/07/14/7170176.html

时间: 2024-08-10 08:33:49

前端通用框架可行性研究报告之弹窗的相关文章

关于学籍管理系统的可行性研究报告

中国地质大学(武汉)学籍管理系统 可行性研究报告 撰写人:曲艺.周凯昇.杨明珠.徐航.付圣 2016年3月目录一.引言 11.1 编写目的 11.2 背景 11.3 定义 21.4 参考资料 2二.可行性研究的前提 32.1 要求 32.2 目标 62.3 条件.假定和限制 72.4 进行可行性研究的方法 72.5 评价尺度 8三.对现有系统的分析 83.1 处理流程和数据流程 83.2 工作负荷 83.3 费用开支 93.4 人员 93.5 设备 93.6 局限性 9四.所建议的系统 94.1

沧州项目可行性研究报告

泓域企划/沧州中小企业2.0发展孵化服务机构 沧州市是河北省的一个地级市,地处河北省东南,东临渤海,北靠天津,与山东半岛及辽东半岛隔海相望,距北京200公里,距天津100公里,距石家庄和济南均为220公里.沧州市是国务院确定的经济开放区.沿海开放城市之一,也是石油化工基地和北方重要陆海交通枢纽,是环渤海经济区和京津冀都市圈重要组成部分 .沧州已成为西煤东运新通道的出海口和冀中南.鲁西北等地区对外开放的桥头堡. 对于初步确立投资意向的项目,泓域企划机构在市场调查的基础上,对市场.投资.政策.企业等

前端测试框架

一.为什么要进行测试? 一个 bug 被隐藏的时间越长,修复这个 bug 的代价就越大.大量的研究数据指出:最后才修改一个 bug 的代价是在 bug 产生时修改它的代价的10倍.所以要防患于未然. 从语言的角度讲 JavaScript 作为 web 端使用最广泛的编程语言,它是动态语言,缺乏静态类型检查,所以在代码编译期间,很难发现像变量名写错,调用不存在的方法, 赋值或传值的类型错误等错误. 例如下面的例子, 这种类型不符的情况在代码中非常容易发生 function foo(x) { ret

项目可行性研究报告

1 引言   1.1 编写目的:   可行性研究的是以最小的代价在最短的时间确定问题是否有解. 1.2 项目背景: 开发软件名称:<PC版Flappy bird>. 项目任务提出者:Team--时代团队(苏林东.李帅.吴威.黄为.安娜.王鑫楠). 项目开发者:石家庄铁道大学Team--时代团队. 用户:中国大学生是各种常用软件的主要用户,而且我们本身是大学生,对此目标群体更为熟悉和了解. 本软件采用的是基于vs2010开发的pc版的软件项目.  1.3 参考资料: <软件工程导论>

FloatyFish可行性研究报告

FloatyFish游戏可行性研究报告 1.引言 1.1编写目的 通过查询相关的资料,初步拟定本项目实现方法,之处在开发过程中会遇到的问题以及解决方案,对项目的可行性有一个分析,本报告撰写完毕后交由组长查看. 1.2项目背景 1.2.1 项目名称:FloatyFish 1.2.2 用户:无聊人群 1.2.3 说明:目前一款flappy bird手机游戏非常盛行,但是这款游戏尚无PC版,导致有的人用电脑学习之余想放松一下只能借助手机,但现在智能机电池都不耐用,那么通过编写一款类似于flappy b

项目可行性研究报告---团队开发项目文档

FloatyFish游戏可行性研究报告 1.引言 1.1编写目的 通过查询相关的资料,初步拟定本项目实现方法,之处在开发过程中会遇到的问题以及解决方案,对项目的可行性有一个分析,本报告撰写完毕后交由组长查看. 1.2项目背景 1.2.1 项目名称:FloatyFish 1.2.2 用户:无聊人群 1.2.3 说明:目前一款flappy bird手机游戏非常盛行,但是这款游戏尚无PC版,导致有的人用电脑学习之余想放松一下只能借助手机,但现在智能机电池都不耐用,那么通过编写一款类似于flappy b

最轻量级的前端Mvc框架backbone

最轻量级的前端Mvc框架backbone依赖最轻量级的库understore backbone并非将前端再次切分为mvc,而是分为了七大模块,分别是:Events.Model.Collection.Router.History.Sync.View 一个Model对应一个View,如果是多个Model时,则进化为一个Collection对应一个View Sync负责与服务器端进行交互 官方网站 http://backbonejs.org/ github地址 https://github.com/j

国际软件设计文档——可行性研究报告

1 引言 1.1 编写目的 说明编写本可行性研究报告的目的,指出预期的读者. 1.2 背景 说明: 所建议开发的软件系统的名称: 本项目的任务提出者.开发者.用户及实现该软件的计算中心或计算机网络: 该软件系统同其他系统或其他机构的基本的相互来往关系. 1.3 定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组. 1.4 参考资料 列出用得着的参考资料,如: 本项目的经核准的计划任务书或合同.上级机关的批文: 属于本项目的其他已发表的文件: 本文件中各处引用的文件.资料,包括所需用到

web前端ui框架好用的有哪几个

如今移动端网站越来越火热,移动端的网站也纷纷崛地而起,在进行web前端开发(http://www.maiziedu.com/course/web/)时,需要用到适合自己项目的框架就需要有偶遇的机会,特别是适合移动端的web前端框架,很难遇得到,下面小编就推荐几款合适的移动web 前端ui框架给大家,能大大提升我们的开发效率. Amaze UI Amaze UI是一个轻量级(所有CSS和JS gzip后100kB左右).Mobile first的前端框架, 基于开源社区流行前端框架编写. Froz