Js 类 文件
//author xxp
//Email 54249636@qq.com
//deploy
var AddOnclick=Class.create({
initialize:function(_oc){
if(typeof _oc == 'function'){
this.beforeOnclick=_oc;
}else{
this.beforeOnclick=function (){return;}
}
}
}
);
//TreeNote
var TreeNote=Class.create({
//树的子节点,
//初始化 参数 textValue,rank,onclick,deployBottom
initialize:function(textValue,onclick,deployBottom){
this.textValue=textValue,this.onclick=onclick,this.deployBottom=deployBottom;
//父节点
this.superNote=null;
//包含div
this.outerDiv=null;
//树的DIV
this.superDiv=null;
},
appendChildNote:function (/*TreeNote*/_obj){
//不存在子节点包含数组则创建
if(!this.childNote)this.childNote=[];
this.childNote[this.childNote.length]=_obj;
_obj.superNote=this;
},
//是否存在子节点
haveChildNote:function(){
return !(!this.childNote);
},
haveSuperNote:function(){
return !(!this.superNote);
},
isLast:function(){
//是否有父节点
if(this.haveSuperNote()){
return this.superNote.childNote[this.superNote.childNote.length-1]==this;
}
return true;
}
});
//TreeStyle
var TreeStyle=Class.create({
//数的样式
initialize:function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10){
this._1=_1,this._2=_2,this._3=_3,this._4=_4,this._5=_5,this._6=_6,this._7=_7,this._8=_8,this._9=_9,this._10=_10;
}
});
var Tree=Class.create({
initialize:function(_container,root){
this.container=_container;//容器div
this.root=root;//最高节点
this.style=new TreeStyle("C1","C2","C3","C4","C5","C6","C7","C8","C9","C10");
var _t=new Element("div");
this.container.appendChild(_t);
this.display(_t,this.root);
},
addNote:function(_root){
this.root=_root;
},
display:function(_outerDiv,_note){
var _s=this.style;
//该层容器DIV
var _root=_outerDiv;
//该节点容器DIV
var _t_r_d=new Element("div");
_root.appendChild(_t_r_d);
//捆绑进对象
_note.outerDiv=_t_r_d;
_note.superDiv=_root;
//创建行DIV
var _t_r_c=new Element("div");
_t_r_d.appendChild(_t_r_c);
//临时变量一
var _t1=null;
var _t_s_o=null; //上层对象
//获取层
var rank=0;
_t_s_o=_note;
for(;;){
if(!_t_s_o.haveSuperNote()) break;
_t_s_o=_t_s_o.superNote;
rank++;
//if(rank>10)break;
}
//显示前面的div
for(var i=rank;i>0;i--){
_t_s_o=_note;
for(var j=i-1;j>=0;j--){
_t_s_o=_t_s_o.superNote;;
}
_t1=new Element("div");
if(_t_s_o.isLast()){
_t1.className=_s._8;
}else{
_t1.className=_s._4;
}
_t_r_c.appendChild(_t1);
}
//显示前面的展开Or Not
_t1=new Element("div");
_t_r_c.appendChild(_t1);
_t1._bindNote=_note;
_t1._tree=this;
_t1._isOpen=false;
_t1.onclick=function(){
this._bindNote.deployBottom.beforeOnclick();
if(this._bindNote.haveChildNote()){
this._tree.showNext(this);
this._isOpen=!this._isOpen;
this._tree.changeCss(this,
this._isOpen?this._tree.style._6:this._tree.style._7
);
}
}
if(_note.haveChildNote()){
if(_note.isLast()){
_t1.className=_s._7;
}else{
_t1.className=_s._5;
}
}else{
if(_note.isLast()){
_t1.className=_s._3;
}else{
_t1.className=_s._2;
}
}
_t1=new Element("div");
_t_r_c.appendChild(_t1);
_t1._bindNote=_note;
_t1._tree=this;
_t1.className=_s._9;
_t1.onclick=function(){
this._bindNote.onclick.beforeOnclick();
}
_t1.update(_note.textValue)
},
showNext:function(_obj){
//_t = true
if(_obj._isOpen){
_obj._bindNote.childNote[0].superDiv.remove();
return;
}
var _t=new Element("div");
_obj._bindNote.outerDiv.appendChild(_t);
for(var i=0;i<_obj._bindNote.childNote.length;i++){
this.display(_t,_obj._bindNote.childNote[i]);
}
},
changeCss:function(_obj,_className){
_obj.className=_className;
}
});
测试 页
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="prototype.js"></script>
<script src="tree.js"></script>
<script>
var rootNote=new TreeNote("测试树Root",new AddOnclick(function(){alert("root")}),new AddOnclick(function(){}));
rootNote.appendChildNote(new TreeNote("测试树_---t",new AddOnclick(function(){}),new AddOnclick(function(){})));
t= new TreeNote("测试树111t",new AddOnclick(function(){}),new AddOnclick(function(){}));
t.appendChildNote(new TreeNote("测试树1t",new AddOnclick(function(){}),new AddOnclick(function(){})));
t.appendChildNote(new TreeNote("测试树1t",new AddOnclick(function(){}),new AddOnclick(function(){})));
t.appendChildNote(new TreeNote("测试树1t",new AddOnclick(function(){}),new AddOnclick(function(){})));
rootNote.appendChildNote(t);
rootNote.appendChildNote(new TreeNote("测试树_---t",new AddOnclick(function(){}),new AddOnclick(function(){})));
function init(){
new Tree($("tree"),rootNote)
}</script>
<title>无标题文档</title>
<style>
#tree div{ clear:both; font-size:12px;}
#tree .C1{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 0 no-repeat;cursor:pointer;}
#tree .C2{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -16px no-repeat;cursor:pointer;}
#tree .C3{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -32px no-repeat;cursor:pointer;}
#tree .C4{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -48px no-repeat;cursor:pointer;}
#tree .C5{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -64px no-repeat;cursor:pointer;}
#tree .C6{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -80px no-repeat;cursor:pointer;}
#tree .C7{ float:left; clear:none; height:16px; width:15px; background:url(TreeAll.gif) 0 -96px no-repeat;cursor:pointer;}
#tree .C8{ float:left; clear:none; height:16px; width:15px; cursor:pointer;}
#tree .C9{ float:left; clear:none; height:16px; width:200px;cursor:pointer; overflow:hidden; line-height:16px; text-indent:3px;}
</style>
</head>
<body onload="init()">
<div id="tree">
<div>测试</div>
</div>
</body>
</html>
分享到:
相关推荐
6. **JavaScript交互**: 虽然主要标签是CSS和div,但源码可能也包含了JavaScript代码,用于实现动态效果和用户交互,比如导航菜单的展开折叠、图片轮播等。 7. **Web标准和最佳实践**: 学习这些源码时,可以观察...
"CSS+Div+JS实现简单导航栏菜单栏"是一个基础但实用的主题,它涵盖了网页布局、样式设计以及交互功能的实现。接下来,我们将深入探讨这三个关键技术在创建导航栏菜单栏中的应用。 首先,CSS(层叠样式表)是用于...
接下来,我们提到的“CSS的API”可能是指CSS规范中的函数或接口,虽然CSS本身并不像JavaScript那样提供完整的编程接口,但CSS Level 2.0引入了一些高级特性,如条件注释(@media)、伪类(:hover、:active、:focus)...
"左侧导航(js+div+css)"这个主题着重于利用JavaScript、HTML div元素以及CSS来创建一个功能完备且美观的导航菜单。下面我们将详细探讨这三个技术在构建左侧导航中的应用和关键知识点。 首先,CSS(Cascading ...
通过CSS,开发者可以将多个DIV元素组合成复杂的布局结构,实现灵活的网页设计。这对创建响应式设计至关重要,因为它允许根据屏幕尺寸调整元素的位置和大小。 JavaScript是一种客户端脚本语言,它赋予网页动态功能。...
综上所述,“绿色个性博客Js+div+css模板”结合了JavaScript的动态功能、Div的布局管理和CSS的视觉设计,构建了一个既美观又实用的博客平台。使用这个模板,博主可以快速搭建自己的个性化博客,同时享受到高效的技术...
本文将深入探讨这些技术,并基于"HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip"这个压缩包中的webdemo-master项目,分析它们在实际应用中的作用。 首先,HTML(HyperText Markup Language)...
2. 布局设计:使用Div+CSS实现流式布局、网格布局或响应式布局。流式布局适合单栏内容展示,网格布局适用于多栏内容,而响应式布局则能保证在不同设备上良好显示。 3. 导航栏:创建易于导航的顶部菜单,包括主要...
本文将深入探讨如何使用JavaScript、CSS和DIV来实现一个功能完善的选项卡组件,其中包括横排和竖排两种布局方式。这个组件不仅能够提升用户体验,还能使页面布局更加整洁有序。 首先,我们来看CSS部分。CSS...
标题中的“JS +CSS+DIV 拖攥仿GOOGLE的”表明这是一个关于使用JavaScript、CSS和HTML(通常用div元素布局)实现类似谷歌风格的拖拽功能的项目。这个项目可能涉及到创建一个用户界面,允许用户通过拖动来重新排列元素...
在IT行业中,CSS(Cascading Style Sheets)与HTML一起构成了网页设计的基础,而div作为HTML中的一个常用布局元素,经常与CSS结合使用以实现复杂的网页布局。本篇将深入探讨"css+div"的经典问题,同时也会提及到...
CSS选择器如类选择器(`.class`)、ID选择器(`#id`)和标签选择器(`element`)帮助我们精确地定位并应用样式。此外,CSS还支持盒模型(Box Model),包括内容、内边距、边框和外边距,这些是理解网页元素大小和...
在IT领域,CSS(Cascading Style Sheets)与DIV元素是网页设计中不可或缺的一部分,尤其对于初学者来说,掌握这两者的基本概念和用法至关重要。本教程“CSS+DIV入门实例”旨在帮助初学者理解并运用CSS和DIV进行网页...
在网页设计中,"js控制层和DIV+CSS实现TAB菜单"是一个常见的技术组合,用于创建交互式的用户界面。这个主题涉及到JavaScript(JS)、层(Layer)管理、Div(CSS布局元素)以及CSS(级联样式表)的使用。下面我们将...
描述中的关键词如"div+css"、"web标准"、"div+css布局"、"div+css实例"、"div+css模板"揭示了这些模板遵循Web开发的最佳实践,旨在实现结构与表现的分离,提高网页的可维护性和可访问性。Web标准通常指的是W3C制定的...
在网页设计中,CSS(层叠样式表...总之,通过CSS和JavaScript(jQuery),我们可以轻松实现各种滑动弹出的div效果,增强网页的互动性和用户体验。设计时应考虑性能和可用性,确保过渡效果平滑且不影响页面的其他功能。
- 如何通过CSS实现动画效果,提升用户体验。 - 如何优化CSS代码,提高网页加载速度。 总的来说,"css+div (10套网站模板)"是一份宝贵的教育资源,无论是初学者还是有经验的开发者,都能从中受益,进一步提升CSS+Div...
在网页开发领域,HTML、CSS、DIV和JS是构建动态、交互式网站的四大核心技术。以下是对这些技术的详细说明和编程技巧。 1. HTML(HyperText Markup Language): HTML是网页的基础,用于定义页面结构。它由一系列...
【标题】:“[浪曦原创]Struct+Hibernate+DisplayTag标签+js+Div+css 第4讲 (zk001).rar”所涵盖的知识点主要集中在Web开发领域,特别是使用Struts、Hibernate、DisplayTag、JavaScript、Div和CSS等技术进行网页设计...
通过学习这个案例,你可以了解DOM操作、CSS样式控制以及简单的JavaScript逻辑处理,这些都是构建交互式Web应用的基础技能。不过,请注意,实际的手机信号强度获取需要借助特定平台的API,这超出了纯Web前端的范畴。