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 相关文章推荐
破除网页鼠标右键被禁用的绝招大全
Dec 27 Javascript
javascript 不间断的图片滚动并可点击
Jan 15 Javascript
return false;和e.preventDefault();的区别
Jul 11 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
Jul 15 Javascript
Jquery:ajax实现翻页无刷新功能代码
Aug 05 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
jQuery实现下拉加载功能实例代码
Apr 01 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
基于Node.js的大文件分片上传示例
Jun 19 Javascript
js面向对象方式实现拖拽效果
Mar 03 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
htm调用JS代码
2007/03/15 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
javascript中常用编程知识
2013/04/08 Javascript
Jquery性能优化详解
2014/05/15 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
Python备份Mysql脚本
2008/08/11 Python
讲解python参数和作用域的使用
2013/11/01 Python
Python自动连接ssh的方法
2015/03/07 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
python opencv实现图像边缘检测
2019/04/29 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python中for in的用法详解
2020/04/17 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
大学生毕业求职简历的自我评价
2013/10/24 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
超市员工辞职信范文
2015/05/12 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS