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 相关文章推荐
CSS+JS构建的图片查看器
Jul 22 Javascript
JavaScript 原型继承之构造函数继承
Aug 26 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
js中用window.open()打开多个窗口的name问题
Mar 13 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
jquery带动画效果幻灯片特效代码
Aug 27 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
Mar 29 Javascript
全面接触神奇的Bootstrap导航条实战篇
Aug 01 Javascript
js实现密码强度检验
Jan 15 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
Sep 15 Javascript
vue读取本地的excel文件并显示在网页上方法示例
May 29 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打造智能化的柱状图程序,用于报表等
2015/06/19 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
用python写的一个wordpress的采集程序
2016/02/27 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
全球最大的服务市场:Fiverr
2017/01/03 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
社会实践心得体会
2014/01/03 职场文书
公司总经理岗位职责
2014/03/15 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
取保候审保证书
2014/04/30 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
老龙头导游词
2015/02/11 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
Python 如何安装Selenium
2021/05/06 Python