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 网页水印(非图片水印)实现代码
Mar 01 Javascript
jquery ui resizable bug解决方法
Oct 26 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
Feb 14 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
vue-router源码之history类的浅析
May 21 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 Javascript
序列化模块json代码实例详解
Mar 03 Javascript
JavaScript实现一键复制内容剪贴板
Jul 23 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
德劲1107的电路分析与打磨
2021/03/02 无线电
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
php对象工厂类完整示例
2018/08/09 PHP
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
详解angular2如何手动点击特定元素上的点击事件
2018/10/16 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
Python中实现常量(Const)功能
2015/01/28 Python
python实现统计代码行数的方法
2015/05/22 Python
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
Python中的取模运算方法
2018/11/10 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Django对models里的objects的使用详解
2019/08/17 Python
python实现从wind导入数据
2019/12/03 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
应聘英语教师求职信
2014/04/24 职场文书
关于环保的建议书
2014/05/12 职场文书
优秀纪检干部材料
2014/08/27 职场文书
通知的格式范文
2015/04/27 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
Redis实现订单过期删除的方法步骤
2022/06/05 Redis