现在的位置: 首页 > 综合 > 正文

codeigniter 看一看 (1) 帮助的做法

2014年01月11日 ⁄ 综合 ⁄ 共 3314字 ⁄ 字号 评论关闭
背景:
   1 为了进步学习php的一些用法和架构(php 是现在工作的一部分)
   2 通过看看php的做法,看是否.Net的一些做法 能相互利用

关于什么是 codeigniter: http://codeigniter.com/

首先看看codeigniter帮助的做法,页面的初始化 隐藏 header
   header  点击不同的内容,指向不同的html  重复隐藏header,
  content
   footer

其实就是使用了一个动态效果,
 使用了 moo.fx.js http://moofx.mad4milk.net/  一个轻量级的基于prototype简化版做的动态效果库,来看下其如何实现的,先看眼 prototype.lite.js:

//修改原型对象
var Class = {
  create: 
function() {
    
return function() {
      
this.initialize.apply(this, arguments);
    }

  }

}

//提供一个方法实现把属性和方法从 源头 到 目的
Object.extend = function(destination, source) {
  
for (property in source) {
    destination[property] 
= source[property];
  }

  
return destination;
}


//返回一个函数,返回的函数将使用原来函数的同样参数
Function.prototype.bind = function(object) {
  
var __method = this;
  
return function() {
    
return __method.apply(object, arguments);
  }

}


//返回元素数组 
function $() {
  
var elements = new Array();

  
for (var i = 0; i < arguments.length; i++{
    
var element = arguments[i];
    
if (typeof element == 'string')
      element 
= document.getElementById(element);

    
if (arguments.length == 1)
      
return element;

    elements.push(element);
  }


  
return elements;
}


//-------------------------
//
取得元素数组通过classname
document.getElementsByClassName = function(className) {
  
var children = document.getElementsByTagName('*'|| document.all;
  
var elements = new Array();

  
for (var i = 0; i < children.length; i++{
    
var child = children[i];
    
var classNames = child.className.split(' ');
    
for (var j = 0; j < classNames.length; j++{
      
if (classNames[j] == className) {
        elements.push(child);
        
break;
      }

    }

  }


  
return elements;
}


//-------------------------

if (!window.Element) {
  
var Element = new Object();
}


//扩展元素几个函数
Object.extend(Element, {
  remove: 
function(element) {
    element 
= $(element);
    element.parentNode.removeChild(element);
  }
,

  hasClassName: 
function(element, className) {
    element 
= $(element);
    
if (!element)
      
return;
    
var a = element.className.split(' ');
    
for (var i = 0; i < a.length; i++{
      
if (a[i] == className)
        
return true;
    }

    
return false;
  }
,

  addClassName: 
function(element, className) {
    element 
= $(element);
    Element.removeClassName(element, className);
    element.className 
+= ' ' + className;
  }
,

  removeClassName: 
function(element, className) {
    element 
= $(element);
    
if (!element)
      
return;
    
var newClassName = '';
    
var a = element.className.split(' ');
    
for (var i = 0; i < a.length; i++{
      
if (a[i] != className) {
        
if (i > 0)
          newClassName 
+= ' ';
        newClassName 
+= a[i];
      }

    }

    element.className 
= newClassName;
  }
,

  
// removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element 
= $(element);
    
for (var i = 0; i < element.childNodes.length; i++{
      
var node = element.childNodes[i];
      
if (node.nodeType == 3 && !/S/.test(node.nodeValue))
        Element.remove(node);
    }

  }

}
);

好,接下来看看轻量级动态库moo.fx.js的实现:

//定义 base object
var fx = new Object();
//定义 函数
fx.Base = function(){};
//函数原型  目的是实现动态效果过程,把其相关函数扩展的
//
 需要的实现效果的类中
fx.Base.prototype = {
   
// 基本的参数设置
    setOptions: function(options) {
    
this.options = {
        duration: 
500,
        onComplete: 
''
    }

    Object.extend(
this.options, options || {});
    }
,
   
//时间开始
    go: function() 
【上篇】
【下篇】

抱歉!评论已关闭.