require.js与bootstrap结合实现简单的页面登录和页面跳转功能


Posted in Javascript onMay 12, 2017

小颖的这个demo其实很简单的,大家一起来先来看看页面效果图:         

require.js与bootstrap结合实现简单的页面登录和页面跳转功能

目录: 

require.js与bootstrap结合实现简单的页面登录和页面跳转功能                    

代码:

inde.html

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>require.js小demo</title>
 <link rel="stylesheet" href="css/bootstrap.css" rel="external nofollow" >
 <link rel="stylesheet" href="css/base.css" rel="external nofollow" >
 <!-- 加载require.js文件,也可能造成网页失去响应。解决办法有两个,一个是把它放在网页底部加载,另一个是写成下面这样: -->
 <!-- <script src="js/require.js" defer async="true" ></script> -->
 <!--async属性表明这个文件需要异步加载,避免网页失去响应。IE不支持这个属性,只支持defer,所以把defer也写上。 -->
 <!-- 加载require.js以后,下一步就要加载我们自己的代码了。假定我们自己的代码文件是main.js,也放在js目录下面。只需要写成下面这样就行了: -->
 <!-- <script src="js/require.js" data-main="src/main.js"></script> -->
 <script type="text/javascript" data-main="js/app" src="js/lib/require.js"></script>
</head>
<body>
 <div class="view-container"></div>
</body>
</html>

js下的文件:

app.js

requirejs.config({
 baseUrl: 'js/lib',
 paths: {
 jquery: 'jquery',
 app: '../app'
 }
});
require(['app/main'], function() {
});

js/app下的文件:

main.js

define(['jquery'], function($) {
 $(function() {
 if(location.hash =="#login"){
 loads(hashToPath('login'));
 }else{
 location.hash = "#login";
 }
 loads(hashToPath(location.hash));
 /*
 监听hashchange切换view
 */
 $(window).on('hashchange', function (e) {
 var hash = location.hash;
 if(hash.indexOf('_') !== -1){
 hash = hash.substring(0, hash.indexOf('_'));
 }
 loads(hashToPath(hash));
 });
 function hashToPath(hash) {
 if (hash.indexOf('#') !== -1) {
 hash = hash.substring(1);
 }
 return 'app/' + hash + '/' + hash;
 }
 function loads(path) {
 require([path], function(view) {
 view.load();
 });
 }
 });
});

BaseController.js

define(function() {
 var setTemplate=function(template){
 this.template = template;
 };
 var render=function(container){
 // 获取模板
 var templateStr = this.template;
 // 加载页面
 container.innerHTML = templateStr;
 };
 return {
 setTemplate:setTemplate,
 render:render
 }
});

Base.js

define(function(require) {
 var viewContainer = null;
 function getViewContainer() {
 return viewContainer ? viewContainer : viewContainer = $('.view-container')[0];
 }
 return {
 getViewContainer: getViewContainer
 }
});

js/app/login下的文件:

login.html

<div class="login-content">
 <form class="form-horizontal">
 <div class="form-group">
 <label class="col-sm-2 col-xs-2 control-label" id="userName">Username</label>
 <div class="col-sm-5 col-xs-5">
 <input type="text" class="form-control" id="inputUserName" placeholder="Username">
 </div>
 </div>
 <div class="form-group">
 <label class="col-sm-2 col-xs-2 control-label">Password</label>
 <div class="col-sm-5 col-xs-2">
 <input type="password" class="form-control" id="inputPassword" placeholder="Password">
 </div>
 </div>
 <div class="form-group">
 <div class="col-sm-offset-2 col-sm-5 col-xs-5">
 <button type="button" class="btn btn-default" id="login">Sign in</button>
 </div>
 </div>
 </form>
</div>

login.js

define(function(require) {
 var Base = require('app/Base'),
 controller = require('../BaseController'),
 template = require('text!./login.html');
 /**
 * 对外暴露函数,用于视图加载
 */
 var load = function() {
 render();
 bind();
 run();
 };
 /**
 * 视图渲染
 */
 function render() {
 controller.setTemplate(template);
 controller.render(Base.getViewContainer());
 }
 /**
 * 事件绑定
 */
 function bind() {
 $('#login').on('click',function () {
 if($('#inputUserName').val()=='小颖'&&$('#inputPassword').val()==1028){
 alert('登陆成功!');
 location.hash = "home";
 }else {
 alert('登陆失败!');
 }
 });
 }
 /**
 * 除事件绑定
 */
 function run() {
 $('.view-container').css("background","url(images/xiangrikui3.jpg) center/cover no-repeat");
 }
 return {
 load: load
 };
});

js/app/home下的文件:

home.html

<div class="home-content">
 欢迎小颖
</div>

home.js

define(function(require) {
 var Base = require('app/Base'),
 controller = require('../BaseController'),
 template = require('text!./home.html');
 /**
 * 对外暴露函数,用于视图加载
 */
 var load = function() {
 render();
 bind();
 run();
 };
 /**
 * 视图渲染
 */
 function render() {
 controller.setTemplate(template);
 controller.render(Base.getViewContainer());
 }
 /**
 * 事件绑定
 */
 function bind() {
 }
 /**
 * 除事件绑定
 */
 function run() {
 $('.view-container').css('background-image','');
 }
 return {
 load: load
 };
});

js/lib下分别是:jquery.js、require.js、text.js这三个文件,小颖就不在这里展示了,大家可以在网上下一个,小颖把text.js下载地址给大家提供出来嘻嘻:text.js

以上所述是小编给大家介绍的require.js与bootstrap结合实现简单的页面登录和页面跳转功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript iframe的相互操作浅析
Oct 14 Javascript
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
window.open打开页面居中显示的示例代码
Dec 27 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
May 07 Javascript
用js格式化金额可设置保留的小数位数
May 09 Javascript
JavaScript必知必会(九)function 说起 闭包问题
Jun 08 Javascript
JS实现JSON.stringify的实例代码讲解
Feb 07 Javascript
vue2.0实现导航菜单切换效果
May 08 Javascript
VUE预渲染及遇到的坑
Sep 03 Javascript
vue组件化中slot的基本使用方法
May 01 Javascript
在vue中配置不同的代理同时访问不同的后台操作
Sep 11 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
jQuery手风琴的简单制作
May 12 #jQuery
jQuery.ajax向后台传递数组问题的解决方法
May 12 #jQuery
Centos6.8下Node.js安装教程
May 12 #Javascript
详解Node.js项目APM监控之New Relic
May 12 #Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 #Javascript
WebSocket实现简单客服聊天系统
May 12 #Javascript
vue2.0结合Element实现select动态控制input禁用实例
May 12 #Javascript
You might like
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
JavaScript数组去重实现方法小结
2020/01/17 Javascript
JavaScript实现PC端横向轮播图
2020/02/07 Javascript
python3.0 字典key排序
2008/12/24 Python
python自定义类并使用的方法
2015/05/07 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
Python创建或生成列表的操作方法
2019/06/19 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
如何现实servlet的单线程模式
2014/08/05 面试题
创先争优活动方案
2014/02/12 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
新文化运动的基本口号
2014/06/21 职场文书
计算机实训报告范文
2014/11/05 职场文书
初中生活随笔
2015/08/15 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
民事纠纷协议书
2016/03/23 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript
MySQL普通表如何转换成分区表
2022/05/30 MySQL