导航菜单

推荐10 个短小却超实用的 JavaScript 代码段

乐博国际网站

f08560ee12b54bfeb25e45b50d09fdc1

JavaScript正变得越来越流行,它已经成为前端开发的首选,而基于JavaScript的NodeJS,我们也可以开发高性能的后端服务,甚至我在硬件编程领域也看到过。 JavaScript的数字。 JavaScript逐渐演变成一种多功能的开发语言。

但使用JavaScript并不容易。除了掌握其语法并知道如何编写高质量代码之外,您还需要了解如何解决几乎每个项目中遇到的需求场景,例如:判断日期。有很多第三方库可以解决这些问题,但是这些库可能不是为了解决这个问题而创建的,这意味着你需要引入很多无关的代码,这将使整个系统膨胀并影响系统的性能。我的方法是收集和使用常见的JavaScript代码段,并尽可能使用它们。下面是我收集的10个有用的JavaScript代码,基于此,您还可以创建更强大的JS插件或函数功能。

1.确定日期是否有效

JavaScript附带的日期函数仍然过于简单,很难满足在实际项目中解析和判断不同日期格式的需求。 JQuery还有一些第三方库使日期相关的处理变得简单,但有时您可能只需要一个非常简单的函数,并且不想引入大型的第三方库。此时,您可以使用以下日期检查代码,该代码允许您自定义日期格式并验证日期有效性。

函数isValidDate(value,userFormat){

//如果未提供格式,请设置默认格式

userFormat=userFormat || '毫米/日/年';

//通过排除

来查找自定义分隔符

//月,日和年字符

Var delimiter=/[^ mdy] /.exec(userFormat)[0];

//创建包含月,日和年的数组

//所以我们知道索引的格式顺序

Var theFormat=userFormat.split(delimiter);

//从用户日期创建数组

Var theDate=value.split(delimiter);

函数isDate(日期,格式){

Var m,d,y,i=0,len=format.length,f;

对于(i; i< len; i ++){

f=format [i];

如果(/m/.test(f))m=date [i];

如果(/d/.test(f))d=date [i];

如果(/y/.test(f))y=date [i];

}

回来(

m> 0&& m< 13&&

y&& y.length===4&&

d> 0&&

//检查它是否是该月的有效日期

d<=(新日期(y,m,0))。getDate()

);

}

返回isDate(theDate,theFormat);

}

使用方法:

以下调用返回false,因为11月没有31天

isValidDate('dd-mm-yyyy','31/11/2012')

2.获取一组元素的最大宽度或高度

以下函数对需要动态排版的开发人员非常有用。

Var getMaxHeight=function($ elms){

Var maxHeight=0;

$ elms.each(function(){

//在某些情况下,您可能希望使用outerHeight()而不是

Var height=$(this).height();

如果(height> maxHeight){

maxHeight=height;

}

});

返回maxHeight;

};

使用方法:

$(elements).height(getMaxHeight($(elements)));

3.突出显示文字

有很多JQuery第三方库可以实现突出显示文本,但我更喜欢使用以下一小段JavaScript代码来实现这个功能,它很短,可以根据我的需要灵活修改,并且可以自己定义突出显示的样式。以下两个函数可以帮助您创建自己的文本突出显示插件。

功能突出显示(文字,文字,标签){

//如果没有提供标签,则为默认标签

标签=标签|| '跨度';

Var i,len=words.length,re;

对于(i=0; i< len; i ++){

//全局正则表达式突出显示所有匹配

Re=new RegExp(words [i],'g');

如果(re.test(text)){

Text=text.replace(re,'$&');

}

}

返回文字;

}

您还需要取消突出显示的功能:

功能unhighlight(文字,标签){

//如果没有提供标签,则为默认标签

标签=标签|| '跨度';

Var re=new RegExp('(|)','g');

返回text.replace(re,'');

}

使用方法:

$('p')。html(突出显示(

$('p')。html(),//文本

['foo','bar','baz','hello world'],//要突出显示的单词或短语列表

'strong'//自定义标签

));

4.文字效果

有时您会希望为文本添加动量并让每个动作都移动。您可以使用此jQuery插件代码来实现此效果。当然,您需要结合CSS3过渡样式以获得更好的结果。

$ .fn.animateText=function(delay,klass){

Var text=this.text();

Var letters=text.split('');

返回this.each(function(){

Var $ this=$(this);

$ this.html(text.replace(/http://www.toutiao.com/a6708600552743240205/g,'$&'));

$ this.find('span.letter')。each(function(i,el){

setTimeout(function(){$(el).addClass(klass);},delay * i);

});

});

};

使用方法:

$('p')。animateText(15,'foo');

5.逐个隐藏元素

下面的jQuery插件根据您设置的步长(间隔)逐个隐藏一组元素。用于重新加载列表元素,可以取得很好的效果。

$ .fn.fadeAll=function(ops){

Var o=$ .extend({

延迟: 500,//元素之间的延迟

速度: 500,//动画速度

轻松:'swing'//其他需要缓动插件

},ops);

Var $ el=this;

对于(var i=0,d=0,l=$ el.length; i

$ el.eq(i).delay(d).fadeIn(o.speed,o.ease);

}

返回$ el;

}

使用方法:

$(elements).fadeAll({delay: 300,speed: 300});

6.限制文字数量

以下脚本允许您根据给定字符的长度拦截文本。如果文本被截断,则会自动跟随省略号。

功能摘录(str,nwords){

Var words=str.split('');

Words.splice(nwords,words.length-1);

返回words.join('')+

(words.length!==str.split('')。length?'.':'');

}

7.确定相应布局中的当前适应度

许多设计采用了响应式布局来匹配不同设备上的网站或应用程序的显示。您经常需要在代码中确定当前正在使用的屏幕适合度。

函数isBreakPoint(bp){

//您在css中设置的断点

Var bps=[320,480,768,1024];

Var w=$(window).width();

Var min,max;

对于(var i=0,l=bps.length; i< l; i ++){

如果(bps [i]===bp){

Min=bps [i-1] || 0;

Max=bps [i];

打破;

}

}

返回w> min&& w<=max;

}

使用方法:

如果(isBreakPoint(320)){

//断点在320或更少

}

如果(isBreakPoint(480)){

//断点在320和480之间

}

.

8.全球统计

在某些游戏或广告场景中,您需要记录用户点击当前页面上的按钮的次数。您可以使用jQuery的.data()函数来处理它:

$(元件)

.data('counter',0)//从零开始计数

。点击(函数(){

Var counter=$(this).data('counter'); //得到

$(this).data('counter',counter + 1); //设置

//做点什么..

});

9.嵌入优酷视频

函数embedYouku(link,ops){

Var o=$ .extend({

宽度: 480,

高度: 320,

参数:''

},ops);

Var id=/\?v \=(\ w +)/。exec(link)[1];

返回'

}

使用方法:

embedYouku(

'http://static.youku.com/v/swf/qplayer.swf',

{ 'winType=adshow&安培; VideoIDS=XMTE3NzQ0NTky&安培; isAutoPlay=假安培; isShowRelatedVideo=假'}

);

10.创建动态菜单或下拉列表

在许多情况下,我们都需要动态创建菜单,下拉列表或列表项。以下是实现上述功能的基本代码,可以根据实际需要进行相应扩展。

函数makeMenu(项目,标签){

Tags=tags || ['ul','li']; //默认标签

Var parent=tags [0];

Var child=tags [1];

Var item,value='';

对于(var i=0,l=items.length; i< l; i ++){

Item=items [i];

//如果存在值,则单独的项目和值

如果(/: /.test(item)){

Item=items [i] .split(':')[0];

Value=items [i] .split(':')[1];

}

//将项目包装在标签

Items [i]='<'+ child +''+

(值&&'value=''+ value +''')+'>'+ //添加值(如果存在)

Item +'';

}

返回''+ items.join('')+'';

}

使用方法:

//下拉选择月份

列出MakeMenu(

['January: JAN','February: FEB','March: MAR'],//项目:值

['选择','选项']

);

//杂货清单

列出MakeMenu(

['胡萝卜','生菜','西红柿','牛奶'],

['ol','li']

);

这些只是一些有用的JavaScript代码段。我还建议您通常注意收集或编写此类基本代码片段。它们可用于许多项目,或通过一些修改提供更好的功能。它将为您节省大量的开发时间。

如果您需要学习这些材料,请转发私信“版本”