摘要: 最近控件设计中涉及到换行处理,之前有三篇是当时过程中的换行处理方法,需求是不能换行,在内容超长时出滚动条.大概需求和情况是这样的.今天提交的代码自我感觉是比较好的一版了,代码质量和个人编程知识/经验等紧密相关,不求最好,但求better and better.在这里做一个总结文,基于之前《换行情况处理》、《又谈换行情况处理》、《换行情况处理之三》及没来得及记录的经验。 当内容超出父级元素宽度,在未设置white-space:nowrap时会自动换行,设置了white-space:nowrap样式又不能关联到滚动条延伸的部分,解决方案如下: 1、在父级元素添加white-space:nowra. 阅读全文
posted @ 2012-03-30 20:23 screepinail 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 今天一个朋友问我一个获取radio属性的方法,用纯JS。纯JS,即没有用任何框架封装的JS。 最近正有“返璞归真”的想法,去系统看了一下纯JS,内容非常简洁。同时也感受到jQuery在getElementsByTagName和getElementById两个方法基础上扩展的dom选择器的直观和丰富。如下为网上共享的JS功能列表: 阅读全文
posted @ 2012-03-22 00:01 screepinail 阅读(413) 评论(1) 推荐(0) 编辑
摘要: 刚刚发现只要在相应块区域加white-space:nowrap就可以自动出滚动条了...... 不懂CSS的JSer真可怕! 但是目前整行的样式无法保持...... 阅读全文
posted @ 2012-03-19 13:54 screepinail 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 接上篇换行情况处理 ,另一个控件也存在换行情况,但是没有上次那个“捷径”中的现象,就是不会换行。出于兼容之前所有功能,最小变更,最快解决的考虑,觉得不改变dom元素,在这些前提下找一个解决方案。 上篇中提到的第一个方案 - - “计算内容宽度”,经过评估后有以下两个难点: 1、每个字符宽度不确定 汉字基本每个字宽度都相同,但字符“a”和“l”,宽度就不同。 2、具体字符宽度如何计算 如果知道每个字符宽度计算方法,自然也就可以有多个字符计算方法。但目前我还没有找到直接计算字符的方法。 基于上面两个点带来的复杂度,我又一次觉得这个方法可行性不高。所以经过思考后使用了下面的方法: 1、在body末. 阅读全文
posted @ 2012-03-16 15:26 screepinail 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 若要优美的嘴唇,要讲亲切的话;若要可爱的眼睛,要看到别人的好处;若要苗条的身材,把你的食物分给饥饿的人;若要美丽的头发,让小孩子一天抚摸一次你的头发;若要优雅的走子,走路要记得行人不止你一个。-- 奥黛丽赫本 感慨一下,生活就是朝着幸福的方向一路向前,路上有小石子,有泥沼,还有鲜花,蓝天白云,它们的存在都是那么的自然,都只是风景。至于其它复杂的感觉都是自己主观的大脑给贴的标签罢了。既然向往美好,那请先让自己的心充满它,让由心而生的一言一行都充满爱的能量。与自己共勉。 阅读全文
posted @ 2012-03-14 20:11 screepinail 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 最近的项目遇到一个树控件行内容超长问题,设计思路是出滚动条,不能换行,不能截断。 解决方案有两个:1、CSS 2、JS动态设置 实际情况:方案1需要开发同学(我)先去学习CSS,咨询了CSS老手,云里雾里--!,决定选择方案2 经过思考后有两个方案: 1、计算内容宽度 优点:精确 难点:内容包含字母、字符、汉字、外文(除英语外的,例如日文、俄文之类)......不是单单用某某.length可以搞定的,计算方法复杂 2、另辟蹊径(基于目前该控件的样式及dom属性和特点) 描述:经过简单测试发现,超出宽度的内容都会换行,换行后直接导致该dom高度变长 待确定点:高度随页面放大缩小变化,所以不能用. 阅读全文
posted @ 2012-03-13 21:13 screepinail 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 接触js快两年了,很多自测差错经验,捡一些影响深刻的记录下来。 1、分号;写成冒号: 我是使用vi编程的,容易将;写成:,当一门心思钻在业务代码逻辑里时,往往会忽略这个小细节。 2、IE中js对像最后一个成员末尾结束多余"," 如下,last结束的","在IE中会报错,在FF中是可以容错的。var obj = { first : "hello", sencond : function(){ alert("second mem"); }, ... ... last : "end",}; 3、未完待 阅读全文
posted @ 2012-03-08 12:24 screepinail 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 最近开发的一个控件,利用live方法在某个"label"上绑定了一个事件。结果发现所有的label都有这个事件了,顺便研究了下live和delegate方法区别。 PS:使用jQuery版本是1.6.2 截取部分live方法实现代码如下:jQuery.each(["live", "die"], function( i, name ) { jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) { var type, i 阅读全文
posted @ 2012-03-08 00:05 screepinail 阅读(907) 评论(0) 推荐(1) 编辑
摘要: FF、Chrome、IE和Safary分别做了测试,在Ctrl+F5时都会刷新缓存重新获取页面。但在F5时,FF会保留input非密码输入框的内容,其它几个浏览器都没有。 测试浏览器IE为8,其它几个都是最新版本。 研究了一下也没有找到确切答案,暂时推测为FF做了特别缓存机制。由于具体业务场景会引起初始化层覆盖带内容的input框,我的处理方法是将其手动置空。 大家对两者区别有更深入了解、看法或者更好的解决方案,欢迎留言。 阅读全文
posted @ 2012-03-06 00:53 screepinail 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 这次项目中有一个功能,频繁使用switch语句,代码优化的时候,将其换成数组。 1、简单示例如下: switch用例 var caseContent = '';//条件判断后处理内容 var caseValue = 5 ;//条件判断值 switch(caseValue){ case 0: caseContent = "鞋子"; break; case 1: caseContent = "裤子"; break; case 2: caseContent = "外套"; break; ... ... case 5: cas 阅读全文
posted @ 2012-02-19 10:58 screepinail 阅读(429) 评论(1) 推荐(0) 编辑