| ProfilKevin.WangFotosBlogListen | Hilfe |
|
07 Januar scriptaculous学习笔记(三)Slider滑动杆滑动杆是通过两个Div嵌套而成的。一个是滑动槽,一个是滑动杆。将这两个div注册为滑动杆就可以了。
<div ID="track1" STYLE="width:200px;background-color:#aaa;height:5px;"> <div ID="handle1" STYLE="width:5px;height:10px;background-color:#f00;"> </div> </div> <script> new Control.Slider('handle1','track1',{ sliderValue:0.5, onSlide:function(v){$('debug1').innerHTML='slide: '+v}, onChange:function(v){$('debug1').innerHTML='changed! '+v}}); </script>
程序通过new Control.Slider( )来注册滑动杆。第一个id是滑动杆,可以以[‘id1’,’id2’,…]的方式来注册多个滑动杆 第二个id是滑动槽。 后面花括号{}中的参数: sliderValue:滑动杆初始值,当有多个滑动杆的时候,用 [v1,v2,…]的方式指定多个缺省值 range: $R(2,15) 滑动槽的值的上下限范围。默认是0~1 axis: 'vertical', 可以获得一个上下拖动的滑动杆.缺省为水平. restricted:true, 多个滑杆时,初始值大的滑杆与初始值小的滑杆不能互相倒置大小. values: [1,2,3…] 滑动槽的多个预设值。滑杆只能滑动到其中的某个值。 onSlide:function(v) 事件:滑动时触发。V是滑杆当前值。 onChange:function(v) 事件:值改变时触发。V是滑杆当前值。 滑杆区域:(多个滑杆之间围成的上下界区域) spans:['span7-1','span7-2'], startSpan:'span7-start', endSpan:'span7-end', 这个地方还没有仔细看,不是非常明白。 注意:当存在多个滑杆时,滑动槽设为relative,滑动杆应设为display:absolute;left:0 ;top:0;
scriptaculous学习笔记(二)Effect效果对象下拉效果&上拉效果
<div id="d1"> aaaaaaa<p>bbbbbbbbbbbbbbbbb<p>ccccccccccccc<p> </div> <a href="#" onclick="Effect.BlindDown('d1',{});; return false;">BlindDown()</a> <p> <a href="#" onclick="Effect.BlindUp('d1',{});; return false;">BlindUp()</a> Effect.BlindDown('d1',{})函数的花括号里面{}可以跟参数: duration:1.0; 这个数字表示动作持续时间。 delay: 0.5 延迟0.5秒再启动效果 如果想让一个Div开始的时候隐藏,点击下拉的时候才拉下,那么只需要将此Div的属性设为:display: none
上滚&下滚效果这一组函数: Effect.SlideUp('d1',{}); Effect.SlideDown('d1',{}); 这组函数效果与Blind那一组基本一样,效果粗看起来差不多……我也是细心比较才发现的。原来Blind这一对内容是不会随着上拉或下拉而动的。而Slide中的内容会被拉上或拉下。
变色闪动效果Effect.Highlight('d1',{duration:1.5}) 此元素将会改变几次颜色并最终返回原来的颜色。
渐变显示效果Effect.Appear(‘d1’,{}) 原来的元素初始CSS为display:none,用此效果后渐渐显示,渐变的alpha滤镜效果。 膨胀消失效果Effect.Puff(‘d1’,{})
消失后可以使用Element.show('d1') 再次将元素显示出来。
渐渐消失效果Effect.Fade('d1') 渐渐显示效果Effect.Appear('test_img') 震动效果Effect.Shake(‘d1’,{}) 此元素将会左右震动 闪烁效果Effect.Pulsate('d1',{}) 此函数通过alpha滤镜来进行闪烁。
长大效果Effect.Grow("d1", {duration:5.0, direction: 'bottom-right', opacityTransition: Effect.Transitions.linear}); 其中:direction 是指的元素从什么方向进入。 如果不指定后面的参数,元素缺省是从下面的中间开始变大。没有alpha效果。 萎缩效果Effect.Shrink(“d1”,{}) 长大效果Grow()的相反效果。
Toggle各种效果汉语里面不知道怎么翻译Toggle,大体意思是:当某物打开的时候触发就关闭,而关闭的时候触发就打开 的一种像”乒乓开关”的行为。这种行为在做页面时特别有用。 Effect.toggle('d2','BLIND') Effect.toggle('d2',’appear’) Effect.toggle('d2',’slide’) … 似乎所有这种有着相反效果的函数都可以在这里设置Toggle, ’BLIND’中的效果名大小写不敏感。
取消效果函数这几个函数真是乏善可陈……唯一要提的就是关于中止这几个动画过程的函数:cancel() 例如: effect1=new Effect.SlideUp(‘d1’,{duration:10.0}); 想要在这10秒钟中止动画过程: effect1.cancel()
效果队列这个神秘的queue属性,还有待进一步学习…… function startTimeline() { // 3x highlight in front for(var i=0; i<3; i++) new Effect.Highlight('d3', { duration: 1.0, queue: 'front' });
// insert scale at very beginning new Effect.Scale('d1', 75, { scaleContent: true, duration: 1.0, queue: 'front' });
// parallel implied, delay 0.5 sec new Effect.Highlight('d1', { delay: 0.5 });
// puff at end new Effect.Puff('d2', { duration: 4.0, queue: 'end' }); }
scriptaculous学习笔记(一)这两篇文章是我昨天一天的成果。scriptaculous真的是一个很好的类库,不过国内的资料似乎很少(起码我没有搜索到),正好是在学习这个咚咚,写个笔记来记录一下吧。准备包含库文件: <script src="../prototype.js" type="text/javascript"></script> <script src="../scriptaculous.js" type="text/javascript"></script> 可排序对象例子:以下代码将创建一个列表,并且可以拖动排序,每次移动户都将触发一个可以返回列表顺序的函数,并且已经序列化,可以通过Ajax传给服务器端。 //建立列表: <ul id="x"> <li id="item_1">1</li> <li id="items_2">2</li> <li d="items_3">3</li> <li d="items_4">4</li> </ul> //开始建立可排序组件 <script type="text/javascript" language="javascript" charset="utf-8"> // <![CDATA[ Sortable.create('x', {overlap:'horizontal', ghosting:true, constraint:false, onUpdate:function(sortable){alert(Sortable.serialize(sortable))}, onChange:function(element){$('state').innerHTML = Sortable.serialize(element.parentNode)} }); 这样一个可以排序的列表就作好啦~~恭喜~!
讲解: 其中,Sortable.create()的作用是将这个id=”x”的<UL>转化为可排序控件。第一个参数’x’便是此控件的ID。 花括号{ }内的属性列表是一些预置属性和各种动作的触发函数: 各个属性的意义: l overlap : horizontal | vertical指明了列表是水平方向还是垂直方向排列。(在constraint属性中会和此属性有关) l ghosting: true | false这个属性指明了拖动行时是否会在原来位置显示虚影占位。 l constraint: 'vertical' | 'horizontal' | false 这个属性指明了是否会被约束拖动方向。 l onUpdate:function(sortable){} :update事件将会在完成一次排序行为时(拖动后鼠标松开时)被触发。”sortable”参数中将会传入被绑定的<UL>对象。 l onChange:function(element){} :此事件将会在鼠标拖动时被触发,每移动一下都将触发此事件。注意:此事件传入的element参数是<UL>下被拖动的<LI>而非整个<UL>
构造函数中的参数列表:
参数名 初始值 说明 element: element tag: 'li', // assumes li children,标签内可被拖动的子标签名 dropOnEmpty: false, ?? tree: false, // fixme: unimplemented ?? overlap: 'vertical', // one of 'vertical', 'horizontal' constraint: 'vertical', // one of 'vertical', 'horizontal', false handle: false, // or a CSS class ,CSS样式是此handle指定样式的标签部分可拖动如为false则整体可拖. only: false, ??? hoverclass: null, //被拖入位置的CSS ghosting: false, //显示残影占位 format: null, //??? onChange: Prototype.emptyFunction, onUpdate: Prototype.emptyFunction dropOnEmpty: true //or false 指定此<UL>等可排序区域可否接受其他<UL>中的元素 containment: ["list1","list2"] 当dropOnEmpty设为true,在此参数中设置可接受的列表id
除了构造函数,其余的常用方法:
l Sortable.serialize(sortable) 静态方法。返回一个当前sortable对象的按照排序顺序先后排列序号的字符串:如x[]=1& x[]=2& x[]=3,每一个<Li>的序号通过<li id="item_1">1</li>的下滑线后面的数字指定。下滑线前面的单词在一组排序中应使用一个相同的前缀。不同的组,前缀应该不同。 l Sortable .destroy(sortable) 静态方法。撤销此对象的排序属性。
常见问题:当我们给<UL>外面加上DIV,比如<div style=”overflow-y:scroll;height:100px;”> 我们会发现页面一团糟了,UL溢出了DIV, 页面乱七八糟。 不用急,在Div的Style中加入 “position:relative;”就解决了<UL>不听指挥的问题。 现在再用一下,拖动有点问题……我们会发现定位不准确了,这是因为没有考虑到滚动条的偏移量。 我们在Sortable的构造函数前加上一句: Position.includeScrollOffsets = true; 此问题便会迎刃而解~~!哈。
04 Januar 我滑 我滑 我滑滑滑一个假期过去,日子也来到了2006年。那该死的DeadLine也又逼近了一步。
昨天公司组织滑雪,动员大家带家属参加:沈当夫妇,Dra夫妇,其余的都是孤寡男生。第一次滑雪,感觉还是很激动地,在雪地上也不知不觉地多摔了许多跟头。要说这滑雪还真是体力活,几趟下来就满身是汗。
上午玩得是双板,厚重的鞋子加上滑雪板和滑雪杆也有个几十斤。尤其是鞋子,从小到大没穿过这么沉的,鞋面非常硬,是用来镶到滑雪板上面的。(以前还一直疑惑怎么鞋子掉不下来)。双板还算比较好滑了,技术要领跟旱冰有点像。但最苦恼的是摔倒了很难爬起来,浑身用不出一点劲。下午玩得是单板,看着那些包头的教练在雪上跟跳舞似的摆出各种POSE,羡慕的不得了。一上单板才知道,这东西滑块了容易,但是停下来就难了。转弯也要复杂一些。一看到前面有人我就不得不主动坐到地上进行刹车。
晚上大家玩得尽兴而归,连上楼梯都会感觉腿软。在饱餐一顿后,就都回家躺在床上装死了。
现在是第二天的早晨,我带着一身的酸疼,写下了这片BLOG.
结论:
29 Dezember 选框架就像挑老婆,要看仔细咯这两天病怏怏的.可能跟天气变冷两天没吃肉圣诞喝多酒有关系.今天特告假一天,在书城挑了本《Junit In Action》,躺在床上看,最终还是惦记着办公室的电脑,急急忙忙的走了过来。出了一身汗,衣服都透了~~
这几天都在看着js的各种各样的框架,要考虑着dra设计的变态交互功能的实现,心里面七上八下的。总结一下吧:
1。Rico,这个负以盛名的Ajax框架,我本来是寄以厚望的。在学习中发现了许多该框架的问题:
2。dojo ,一些比较有用的基础函数,还正在学习~~ 3。DWR,这个框架比较神奇,通过它可以令js与java对象通信……据说内部也是使用的xmlhttp进行的转化,不过我在想,这样一来就不需要url来url去了……假如能够直接操纵bean那世界就太完美了。不过学长子楠告诫我:用这个会很麻烦……还在继续考察中~有兴趣的朋友可以去搜索一下。 4。prototype,一个奇思妙想的js基础框架,使得许多原来的繁复工作变得简单。一片比较好的学习笔记:https://compdoc2cn.dev.java.net/prototype/html/prototype.js.cn.html,据说是从先进的Rails里面剥离出来的~~呵呵。 5。scriptaculous,比较难记的名字…据说在Ajax方面,好评度23%名列第二。集成了一些比较好的基本功能。有待学习~~
沈当叫我吃饭……先写到这里吧,以后还要继续学习,网站少不了Ajax,也少不了js。 27 Dezember Web2.0 Coder的圣诞节的祷词All I want for Christmas is Ajax
22 Dezember 浅析软件项目管理中十个误区 (6--10)误区6:软件项目管理只是相关技术部门的事情,与公司其他部门无关。分析:在竞争日益激烈的今天,软件项目规模大、复杂度高而且时间要求紧迫。要想提高公司的软件项目管理水平,这就需要提高公司的整体 参与意识,需要公司各个部门协同作战。例如需要会计部门协助进行项目预算,财务管理和费用控制;需要研究部门(技术委员会)指派专家 协助进行各种风险评估,提供技术指导;需要后勤部门提供各种保障。
误区7:在开发进度滞后的情况下,可以聘请更多的程序员加入到开发团队中,通过增加人力资源来赶上进度。分析:在注重团队开发的时代,开发方应该根据目前的软件项目管理水平慎重考虑这个做法。如果新加入的程序员对目前软件项目的应用行业 有一定了解,并且可以很快适应了开发方的项目管理方式、软件开发风格、团队协作氛围;那么“新人”的加入是有益的。否则,可能会“好 心好意做坏事”。因为尽管其个人能力很高,但是为了使其与大家一起协同工作,开发团队不得不分出人手对其进行与项目有关的技术/业务培 训,更重要的(也是难度最大的)是还要引导其融入团队。这可能需要花费开发团队许多时间和精力,很有可能使项目进度更慢。
误区8:技术骨干应该成为项目的项目经理,项目经理一定是所有项目成员中薪水最高的。分析:在“软件作坊”时代,这是一种普遍使用而且效果不错的方法;而在“软件工厂”时代,这种方法却带来各种问题,有时甚至直接导致 项目失败。究其原因这主要是因为随着现代软件开发分工的细化,对项目经理的要求也发生了根本的改变——最注重的不是其对某项专业技术 的掌握程度,而是其组织、领导、协调开发团队的能力(当然,可以两者均突出最好)。至于项目经理的薪水问题,这和定薪制度有很大关系 。通常,项目经理执行的是管理人员的薪酬体系,而其他人员执行的是技术人员的薪酬体系。项目经理的薪水在项目成员中是比较高的,但不 一定是最高的。有时候,为了激励技术人员,项目中的技术骨干得到的酬劳比项目经理要高。
误区9:只有项目经理以及部门主管才会关心项目整体进度,程序员只关心自己的开发进度。分析:这是一种“官僚”的想法。实际上程序员作为团队中的一员,他不仅仅是在打一份工,更重要的是在参与一件“作品”的创作。在体味 工作的辛苦的同时,程序员更重要的是要享受创作的快感。项目经理不应该漠视程序员对“成就感”的追求,应该向每一个人详细描述最终“ 作品”将会如何美妙和令人兴奋,并且在到达最终目标的路上设立一系列的里程碑。每当项目整体推进到一个里程碑的时候,项目经理应该把 这个消息告诉每一位项目成员。实际上,这不仅仅可以让所有的项目成员享受到阶段胜利的喜悦,还可以激发大家更大的工作热情,提高工作 效率。
误区10:为了保证项目继续,为了留住核心程序员,加薪吧。分析:加薪可以说是很多企业在挽留程序员时所使用的常用方法。这一招可能暂时奏效,不过往往是人留下来了,但副作用也来了——加薪的 人未必见得多干活,没有加薪的人却开始消极怠工了。其实,项目的进行过多地依赖程序员的个人技术是“作坊”时代沿袭下来的“陋习”。 既然IT行业人员的流动是无法控制的,现在项目的执行应该更加注重团体的力量,应该更多的考虑公司整体技术水平和核心技术能力。例如形 成公司自己的专家知识库,类/函数库,第三方控件库,拥有自主版权的开发平台等。另外,实际上程序员萌生去意的原因很大程度上不是薪水 ,而是缺少激励和尊重。这需要项目经理使用“老土”一点的办法,找适当的时机对程序员做一做思想工作,向其描述项目的美好未来,让其 感受关心和尊重。总之,要从多方面着手保证项目的顺利开展,而不是简单地加薪。
|
|||||||||
|
|