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 选择文件夹对话框(web)
Jul 07 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 Javascript
jQuery表格行换色的三种实现方法
Jun 27 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
May 08 Javascript
Jquery之Bind方法参数传递与接收的三种方法
Jun 24 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
原生js实现放大镜效果
Jan 11 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
Angular之toDoList的实现代码示例
Dec 02 Javascript
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
微信小程序视频弹幕发送功能的实现
Dec 28 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 模拟POST|GET操作实现代码
2010/07/20 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
js实现五星评价功能
2017/03/08 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
带你认识Django
2019/01/15 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
军训自我鉴定
2014/01/22 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
辞职信的写法
2015/02/27 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers