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 相关文章推荐
jquery中获取select选中值的代码
Jun 27 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
JS中判断null的方法分析
Nov 21 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
jQuery遍历节点方法汇总(推荐)
May 13 jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
解决easyui日期时间框ie的兼容的问题
Mar 01 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
May 05 Javascript
vue实现锚点定位功能
Jun 29 Vue.js
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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
php实现jQuery扩展函数
2009/10/30 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
python 字典(dict)按键和值排序
2016/06/28 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
python实现二维数组的对角线遍历
2019/03/02 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
2020/12/07 Python
Python 实现一个简单的web服务器
2021/01/03 Python
python drf各类组件的用法和作用
2021/01/12 Python
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
2014年外联部工作总结
2014/11/17 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python