Javascript
文章平均质量分 54
nelson
一个幸运的从windows开发转到liunx开发的前端工程师~
前端的喜怒哀乐,一一印记心中。
无论如何要记住,我们是做产品的!希望你也能明白这句话的意思。;)
展开
-
写瀑布流中使用到的一个或许数组最小下标的函数(不知道还有没有更好的方法)
一、前言瀑布流中需要用到一个获取数组中最小下标的函数。一直在是不是有更简洁的方式。以下是我自己写的一个方法,真心希望同仁们能给我一个更好的办法:二、Coding Show简单但是还是有点长的代码如下: // [1,2,0,4] return 2 getMinPos: function() { var arr = this.collectHeight,原创 2012-09-09 20:03:54 · 401 阅读 · 0 评论 -
原生的pngFix(让IE支持PNG透明)
由于帮人解决IE6 png不透明的bug,看到了对方使用jquery的pngfix,问题很快就找到了,是因为类库冲突,也就是引入了两个类库导致的$冲突。自己之前很少关注这方面东西,出于好奇看了一下源码,发现实在不堪入目,就突发奇想采用原生的JS重构了一遍。如下:/** * png fix by yansong at 2011-12-07 * * @example $.ready(fu原创 2011-12-09 16:03:46 · 1274 阅读 · 0 评论 -
解决IE6下多个img通过js加载同一张图片时的重复请求
如果使用下面的方式操作img的src在IE6下会重复请求img的url,导致最终显示的img图片(验证码)不一样:function changPic(imgs){ var len = imgs.length, src = imgs[0].src.split('?')[0]+'?'+new Date(); // 动态的验证码 while(len--){ imgs[len].sr原创 2011-12-09 16:48:16 · 989 阅读 · 0 评论 -
HTML中的target属性之framename
包含target属性的标签有: 。对应的target值有:_blank_parent_self_topframename (标签没有)对于上面四个来说,再熟悉不过了。但是很少有人注意到或者说使用到第五个值:framename。因为它设计得实在是太巧妙了。。。这里我给出一个替代异步的ajax登录方式的例子。但凡登录大多都是不能通过ajax方式去原创 2011-12-01 18:24:26 · 2246 阅读 · 0 评论 -
js写一下自己比较熟悉的一个冒泡排序算法和二分查找算法
最经典的冒泡排序法,自己就只对这个印象最深了:// 写一个简易的冒泡排序算法// js不等同于c,在真实处理过程中我们需要注意是否是拷贝对象或引用对象,不然很容易出错var c = [1,2,3,4,5,6,7];var len = c.length, l, tmp;while(--len){ l = len; tmp = c[len]; while(l--){ if(c[l原创 2011-11-10 15:38:47 · 922 阅读 · 0 评论 -
用户离开页面和回到页面事件(标签切换)
用户离开页面,但是不是关闭页面。最开始使用onload和onunload发现这两个指的是关闭页面和打开页面触发的事件,并不是用户离开这个页面去看另外一个页面的事件。然后通过测试发现用户离开页面起作用的事件是:blur & focus;具体测试代码如下: 测试离开页面和回到页面事件 #tt{ height: 20px; font-size: 14px; c原创 2011-11-17 18:42:38 · 1875 阅读 · 0 评论 -
在CSS遮盖层基础上进行弹出层垂直居中
本篇是继上篇《CSS实现遮盖层》而来。在上一次的基础上加上了弹出层的垂直居中。需要:1. 弹出层固定高,或者通过js去计算出来的高。具体实现: 1. 在弹出层处加一层类似遮盖层的包裹;2.设定宽度,这个是必须的。3. 对弹出层使用:margin-left & margin-right: auto; (水平居中); 4. 对弹出层使用: top: 50%; margin-top: -heig原创 2011-11-17 10:21:13 · 1636 阅读 · 0 评论 -
yui3 Node使用对应表
2.x YAHOO.util.???3.0Dom.get('elementId');Y.one('#elementId');Dom.getElementsBy(someFilterFunction);myNo转载 2011-10-19 09:39:09 · 451 阅读 · 0 评论 -
IE下获取完整的Object标签
IE不能获取到完整的Object标签?当然能!!问题是通过何种方式去获取。object.outerHTML or object.parentNode.innerHTML ?yss最开始尝试使用上面两种方式去获取下面的object标签:原创 2011-10-16 09:24:10 · 871 阅读 · 0 评论 -
也写图片延迟加载
去年就开始琢磨着怎么写一个图片延迟加载的组件了,拖到了现在才终于完成了。参数说明:placehold {url}占位符,用于替代当前图片的地址;manual {boolean} 手动模式,默认为false,即自动模式;dataSrc {string} 放在im原创 2011-08-16 13:44:20 · 418 阅读 · 0 评论 -
js把object(或者说json数据)转化为string对象《更新》
参考了:js json object to string 变在原文的基础上进行了改进,加快处理速度。并在原文的基础上修改了三处不当之处:判定字符串时需要加上双引号"";空数组情况错误,需要判定:r[len==0? j : j-1] = ']';空对象情况错误,需要原创 2011-09-01 17:20:33 · 6501 阅读 · 0 评论 -
对YUI3 show方法实现机制的探讨
今天使用YUI3弄了半天的node.show(),发现它不起效果,然后也不报错。API文档中是这么写的:void show ( name , config , callback )后来想了想还是直接看源代码吧,然后发现下面这段话:_show: function()原创 2011-09-01 15:07:39 · 375 阅读 · 0 评论 -
YUI3 Config说明
/** * The config object contains all of the configuration options for * the YUI instance. This object is supplied by the implementer * when原创 2011-07-11 18:15:40 · 542 阅读 · 0 评论 -
一些常用的跨浏览器DOM操作(next,prev,children)
以前一直没有细心去探究这些个浏览器的dom操作,所有很有必要总结一下。一是为了自己以后不再出错;二是避免自己以后有疑问就去找;总之就是有必要总结一下:function $(a){ return document.getElementById(a);}// IE 下如果节点是内联元素(非样式设置:display:block)则获取的nextSibling的节点为文本节点(没有空原创 2011-12-16 18:41:12 · 602 阅读 · 0 评论 -
img数据延迟加载组件2.0
/** * img图片数据延迟加载组件 2.0 * @Author yansong@corp.netease.com * @Date: 2011-11-11 * @For: if needs * @Desc: * 对应的结构: * imgs只支持原生的数组、NTES的数组对象、JQuery的对象数组。如:document.getElementsByTagName('img')原创 2011-11-10 14:43:29 · 1019 阅读 · 0 评论 -
JSChart内置函数参考
jsChart是个相当不错的绘图js。下面的描述我也忘了是从哪copy下来的,很不错,这里分享一下哈(非常感谢翻译和分享此内置函数的那些个人):colorizeBars(array colordata)设置柱状图各矩形颜色。colorizePie(array colordata)设置饼图各块颜色。draw()用在最后,各项设置完毕后,执行此函数画出图表。setAxisColor(s转载 2012-03-30 15:49:01 · 569 阅读 · 0 评论 -
YUI3中一个简单的HTML标签过滤函数
1、前言HTML标签过滤,对于前端来说,不是很常用,但是很必要用。因为在程序实现里,需要尽量避免用户的不当输入。特别在程序设计里,都要假定用户输入的都是不安全的。当然在前端这块,是没法绝对的做到防止用户的非法输入。但是很有必要检测正常用户的不当输入。2、YUI3的一个简单实现机制/** * 简单的HTML标签过滤 */var HTML_CHARS = {原创 2012-08-10 23:22:05 · 627 阅读 · 0 评论 -
js动画的几个基础函数
其实也叫缓动函数,如下:/** * 缓慢移动效果算法 *@param t {number} current time(当前时间); *@param b {number} beginning value(初始值) 置0,即b=0; *@param c {number} change in value(变化量) 置1,即c=1; *@param d {number} duration(持原创 2012-03-31 17:37:27 · 491 阅读 · 0 评论 -
js触发元素的原生事件
平常大部分情况下是不需要触发元素的原生事件,但是有时很有必要模拟原生事件就会用到,直接看代码:/** * 触发元素的原生事件 *@params elem *@params type event type, such as: click, blur, focus, change ... *@returns */function fire(elem, type){ var e原创 2012-04-01 16:24:08 · 1011 阅读 · 0 评论 -
form表单设置为disabled时,IE下select提交不了bug
今天遇到一个很悲催的bug,IE下select值提交不了。找了又找,最后终于发现了问题的根本所在:form在表单提交之前被设置了disabled的属性(这个是为了防止表单重复提交设置的)。这样一来,IE下form.submit()提交后,select值传不到服务器。所以应该这样写:e.preventDefault();form.submit();form.setAttrib原创 2012-03-15 11:21:17 · 1069 阅读 · 0 评论 -
记录一下简易版的页码生成器
也写一下页码生成器。在使用的时候需要使用事件代理的方式去注册事件。基本思路就是判断e.target||e.srcElement的nodeName为A,先去data-val存在则计算,不存在则取元素对应的firstChild.nodeValue即可得到页码。大致如下:function delegate(o){ o.addEvent('click', function(e){ var t原创 2012-03-02 14:24:45 · 484 阅读 · 0 评论 -
ie下设置table的colspan问题
Attention: ie下设置clospan属性必须这么写:colSpan,否则不起作用。(row.cells[0].setAttribute('colSpan','5');)转自:http://hi.baidu.com/5i24/blog/item/902cd61b941e48deac6e754c.html转载 2012-03-28 11:27:48 · 797 阅读 · 0 评论 -
seajs中处理require的方法
seajs确实不错,模块化加载用起来得心应手。准备以后自己每个项目都是用seajs来管理自己的js代码了。言归正传,说到seajs里面的require着实不明白是怎么工作的。最开始我是认为中断代码执行,然后再等js加载完后调用callback(也就是对应的arguments.caller)后来终于通过Google论坛找到了对应的说明(最开始看seajs-debug.js源码楞是没有看下去)原创 2012-03-26 17:11:37 · 1631 阅读 · 0 评论 -
js把中文字符串转为gbk编码(页面编码需为gbk)
一直以来遇到gbk编码,都是要求两次encodeURIComponent去实现的。这次的实现是才用模拟表单提交的方式去获取。具体如下代码:/* * add by yansong * for 在gbk页面里实现字符转换成gbk编码提交到后端 * add 传统的做法是进行两次encodeURIComponent后提交,而这个则是直接变成gbk编码,其他是页面编码必须是gbk */(f原创 2012-02-29 12:28:15 · 3333 阅读 · 0 评论 -
JS中判断鼠标按键的问题(event.button)
mousedown事件event.buttonIEFirefoxChromeOpera左键1000右键2222中键4111默认--------测试代码:IE:document.onmousedown = function(){c原创 2012-02-28 16:33:56 · 1703 阅读 · 0 评论 -
js实现iframe的load事件(兼容IE)
判断iframe加载完成:function loadIframe(src, callback){ var iframe = document.createElement("iframe"); iframe.src = src; if(-[,1]){ // nonIE iframe.onload = callback; }else{ // IE iframe.onready原创 2012-02-29 13:29:28 · 2666 阅读 · 0 评论 -
jQuery最佳实践(如何用好jQuery)
我主要参考了Addy Osmani的PPT《提高jQuery性能的诀窍》(jQuery Proven Performance Tips And Tricks)。他是jQuery开发团队的成员,具有一定的权威性,提出的结论都有测试数据支持,非常有价值。==============================================1. 使用最新版本的jQueryjQuery的转载 2012-02-28 16:59:15 · 299 阅读 · 0 评论 -
iframe下的几个属性(判断当前页面是否处在iframe里)
<br />如果想判断当前页面是否处在iframe里,可以使用在页面里使用self.frameElement来判断。<br />但是这个只能是适用于同域的iframe下才可以使用。跨越是不能访问的!<br />另外如果想要获取其他属性的话,可以采用self.frameElement去获取,比如:<br />self.frameElement.id;<br />self.frameElement.tagName;<br />self.frameElement.offsetHeight;<br />等等这些Do原创 2011-05-10 20:08:00 · 1582 阅读 · 0 评论 -
JQuery获取docWidth、docHeight、viewportWidth以及viewportHeight
<br />之前一直迷惑JQuery为什么没有获取文档的高宽(docWidth、docHeight)以及可视区的高宽(viewportWidth、viewportHeight)。<br />原来是自己都还没弄清楚它的内在集成。总结起来就是:<br />docWidth = $(document).width();<br />docHeight = $(document.).height();<br />viewportWidth = $(window).width();<br />viewportHeigh原创 2011-05-06 10:56:00 · 639 阅读 · 0 评论 -
卡盘(更新版)
想了想还是重新写过卡盘的实现吧,当然,还是去实现那种一直向上滚的模式,因为我觉得这种方式在交互上,更重要的是用户体验上更人性化。然后根据我之前写的卡盘,做了两种写法,(当然,这回我使用的是jquery)大致如下:First Grid Demo原创 2011-05-02 10:53:00 · 634 阅读 · 0 评论 -
使用JavaScript定位光标位置for input type="search" in chrome
曾几何时,HTML5的出现非常的受欢迎,但是现在我要说的就是一个html5标签:input type="search"在chrome下发生了光标位置时前时后。具体表现在你在输入文字后,然后点击标签的外面,奇迹的事是光标位置有时在最前面,有时在最后面。而我想要的就是最后面。找了很久没有找到相关的解决问题。然后,就想到了通过定位光标位置来解决,最后在网上找到了一个定位光标的写法://for IEif (document.all){ var r = document.selection.cr原创 2010-11-01 18:08:00 · 1086 阅读 · 0 评论 -
自己写的一个自动生成小三角的函数
/** value: int类型,指的是三角的高度, 在css里当是三角指向的是上下方向时,它指的是高度,反之是左右的话指的就是宽度。默认为7,但是不能大于20* towards: String类型,指的是三角的朝向,上:top; 下:bottom; 左:left; 右:right 默认为top* arrayColor: array类型,包含两个数据,一个是边框的颜色,一个是背景颜色,格式为:#ABCDEF,默认:['#000000','#CCCCCC']* triStyle: object原创 2010-10-30 18:24:00 · 289 阅读 · 0 评论 -
今天继续完善自己写的跨域iframe自适应高
<br />上回第三方反应说webkit内核的浏览器下,crossFrame.setHeight()不能设置预期的高度。打开一个短页面的话高度不会缩进,然后经过自己的测试,方向问题确实存在,主要是iframe下取到的document.body.scrollHeight不是实际的高度。<br />然后到网上搜了一下其他获取高度的方法,试了一下,offsetHeight发现很完美的解决了这个问题。<br />最后修改了一下之前的js,通过代理服务器,测试效果很好。<br />这里贴出自己修改后的proxy.js原创 2010-12-21 16:45:00 · 533 阅读 · 0 评论 -
Javascript中setTimeout 和 setInterval 的区别
<br />setTimeout (表达式,延时时间)<br />setInterval(表达式,交互时间)<br />延时时间/交互时间是以豪秒为单位的(1000ms=1s)<br /><br />setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次<br />setInterval 在执行时,它从载入后,每隔指定的时间就执行一次表达式<br /> <br />from:http://www.cnblogs.com/tuyile006/转载 2010-10-26 14:35:00 · 234 阅读 · 0 评论 -
在淘宝里,他们总结的一些前端Tips
<br />3.2 - 3.5<br /> <br />1.【约定】文件命名全部都用小写和下划线,样式命名全部使用小写和连接符,JS的钩子使用“J_HiTao”<br />2.【HTML】需要为html元素添加自定义属性的时候,首先要考虑下有没有默认的已有的合适标签去设置,如果没有,可以使用以”data-“为前缀来添加自定义属性,避免使用”data:”<br />3.【约定】文件要求编码必须为GBK、GB2312或者GB18030<br />4.【HTML】html代码要求所有的标签、属性都是用小写字母转载 2010-12-15 17:53:00 · 1317 阅读 · 0 评论 -
火狐下不知道的e.layerX以及e.layerY
之前用kissy,使用了原创 2010-12-13 11:30:00 · 594 阅读 · 0 评论 -
鼠标滑过后,直接获取包含在注释节点里面的内容
<br />division = (function(){ var S = KISSY, D = S.DOM, E = S.Event, ff = S.UA.firefox ? true : false, //由于火狐不支持outerHTML这里对它进行检测到时再判定,当然可以直接×.outerHTML || ×.innerHTML comment = {},//{value:[left, top, node, css, html]}value代表注释值,如start: abc,原创 2010-12-13 10:23:00 · 370 阅读 · 0 评论 -
省份选择器DPL
<br />做什么呢?直接贴代码,看得更清楚:<br /><!doctype html><html><head><meta charset="gbk"><title>First Grid Demo</title><link rel="stylesheet" charset="gbk" href="css/tbsp.css" mce_href="css/tbsp.css" media="screen" /><style>body{ padding-left: 30px;}原创 2010-12-13 09:24:00 · 440 阅读 · 0 评论 -
跨域iframe动态设置高度
思想可以参考:http://www.cnblogs.com/yuzhongwusan/archive/2009/01/07/1371063.html首先写一个需要插入的文件。定为:http://10.13.190.76/daily/index.html 内容如下:First Grid Demo上面是测试自动适应高度的iframe原创 2010-12-06 20:16:00 · 1073 阅读 · 0 评论 -
也写js的倒计时程序(简化了一些)
var d = (new Date(2010,11,31) - new Date())/1000, p = document.getElementById('p');var day = Math.floor(d/86400), h = Math.floor((d-day*86400)/3600), m = Math.floor((d-day*86400-h*3600)/60), s = Math.floor(d-day*86400-h*3600-m*60);function ale(){if(-原创 2010-12-02 21:33:00 · 284 阅读 · 0 评论