有趣javascript,有趣的故事

javascript框架有哪些

目前来看,JS框架以及一些开发包和库类有如下几个,Dojo 、Scriptaculous 、Prototype 、yui-ext 、Jquery 、Mochikit、mootools 、moo.fx

10年积累的网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有定边免费网站建设让你可以放心的选择与我们合作。

Dojo (JS library and UI component ):

Dojo是目前最为强大的j s框架,它在自己的Wiki上给自己下了一个定义,dojo是一个用JavaScript编写的开源的DHTML工具箱。dojo很想做一个“大一统”的 工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo包括ajax, browser, event, widget等跨浏览器API,包括了JS本身的语言扩展,以及各个方面的工具类库,和比较完善的UI组件库,也被广泛 应用在很多项目中,他的UI组件的特点是通过给html标签增加tag的方式进行扩展,而不是通过写JS来生成,dojo的API模仿Java类库的组织 方式。 用dojo写Web OS可谓非常方便。dojo现在已经4.0了,dojo强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。

优点:库相当完善,发展时间也比较长,功能强大,据说利用dojo的io.bind()可以实现comet,看见其功能强大非一般,得到IBM和SUN的支持

缺点:文件体积比较大,200多KB,初次下载相当慢,此外,dojo的类库使用显得不是那么易用,j s语法增强方面不如prototype。

Prototype (JS OO library):

是一个非常优雅的JS库,定义了JS的面向对象扩展,DOM操作API,事件等等,以prototype为核心,形成了一个外围的各种各样 的JS扩展库,是相当有前途的JS底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR集成的AJAX JS库),之上还有 Scriptaculous 实现一些JS组件功能和效果。

优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。

缺点:如果说缺点,可能就是功能是他的弱项

Scriptaculous (JS UI component based on prototype):

Scriptaculous是基于prototype.js框架的JS效果。包含了6个js文件,不同的文件对应不同的js效果,所以说,如果底层用 prototype的话,做js效果用Scriptaculous那是再合适不过的了,连大名鼎鼎的digg都在用他,可见不一般

优点:基于prototype是最大的优点,由于使用prototype的广泛性,无疑对用户书锦上添花,并且在《ajax in action》中就拿Scriptaculous来讲述js效果

缺点:刚刚兴起,需要时间的磨练

yui-ext (JS UI component):

基于Yahoo UI的扩展包yui-ext是具有CS风格的Web用户界面组件 能实现复杂的Layout布局,界面效果可以和backbase媲美,而且使用纯javascript代码开发。真正的可编辑的表格Edit Grid,支持XML和Json数据类型,直接可以迁入grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的Tree 控件、动态拖拽效果等等。1.0 beta版开始同Jquery合作,推出基于jQuery的Ext 1.0,提供了更多有趣的功能。

优点:结构化,类似于java的结构,清晰明了,底层用到了Jquery的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。

缺点:太过复杂,整个界面的构造过于复杂。

Jquery :

jQuery是一款同prototype一样优秀js开发库类,特别是对css和XPath的支持,使我们写js变得更加方便!如果你不是个js高手又想写出优 秀的js效果,jQuery可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标,

优点:注重简介和高效,js效果有yui-ext的选择,因为yui-ext 重用了很多jQuery的函数

缺点:据说太嫩,历史不悠久。

Mochikit :

MochiKit自称为一个轻量级的js框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器

优点:MochiKit.DOM这部分很实用,简介也是很突出的

缺点:轻量级的缺点

mootools :

MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools跟prototypejs相类似,语法几乎一样。但它提供的功能要比prototypejs多,而且更强大。比如增加了动画特效、拖放操作等等。

优点:可以定制自己所需要的功能,可以说是prototypejs的增强版。

缺点:不大不小,具体应用具体分析

moo.fx :

moo.fx是一个超级轻量级的javascript特效库(7k),能够与prototype.js或mootools框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何HTML元素的CSS属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。

优点:小块头有大能耐

缺点:这么小了,已经不错了

求js高手解释如下这个有趣的代码:先说xmlns:v是什么情况?然后解释那个不规则的for循环。

var l=0;

while( l-201!=0 ){

if(l-135!=0){

if(l-23!=0) l+=1;

else l+=9;

}esle{

l+=41;

}

document.write( l + 'v:rect style="width:50px; height:50px; behavior:URL(#default#VML);" coordsize="21600, 21600" fillcolor="#' + (Math.random() * 4096).toString(16) + '" O:SpT=' + l + ' onclick="fill.on=0" /');

}

你所说的 "不规则的for循环" 其实非常标准,只是用了两重三元运算符而已。

我把他换成了完全等价的while循环,相信你能理解的、

谈谈js点击之后发生了什么

之所以突然想写这个文章,主要是之前看到一篇有意思的博文, 《探究点击事件在JavaScript事件循环中的表现》 ,有趣的地方在于JS点击事件加入回调的 并不是点击事件的回调方法 ,而是点击事件本身 (点击位置等描述点击的) 。

当我们连续点击 button.a 两次的时候,结果却是

明明是点击的 button.a ,为什么会触发 button.b 的事件?

无论通过 onclick 还是 addEventListener 实现事件绑定,我怀疑绑定机制是一样的,因为在实际测试中,我发现 onclick 执行顺序和 addEventListener 是一样的,也就是什么时候绑定,那么就在第几个执行。

addEventListener 和 onclick 不同,不是直接给 dom 绑定属性,并且我在 dom 节点上也没有看到任何相应的对象用于保存事件,可见 addEventListener 是不同的机制,参考 EventEmitter ,试着去实现一个 addEventListener

通过上面分析,总结一下

如何创建一个JavaScript弹出DIV窗口层的效果

实现原理:

首先,我们将弹出框中的内容放置在一个特殊的DIV层中,然后默认隐藏它(即初始不可

见,使用CSS即可实现)。当用户执行某个动作时——比如点击某个链接或者将鼠标光标移动到某个链接上——我们将之前设置好的隐藏层显示在所有页面元素的

最上层(将使用JS操作实现)。此外,我们还将在弹出DIV窗口中设置一个按钮来执行——当用户点击此按钮时关闭窗口的功能。

实现过程:

就如我上面提到的,我们首先需要创建一个特殊的DIV层,然后我们将弹出窗口的内容放在这个DIV层里面。在这里,我们将其ID命名为“popupcontent ”以区别于其他DIV层。

div id="popupcontent"这是一个DIV弹窗效果!/div

弹出窗口的CSS修饰代码:

下来,让我们给上面已创建好的这个DIV弹出层进行CSS美化。其中最重要的几个参数分别是:overflow(内容溢出),

visibility(可见性)

和position(定位方式)。同时我也给这个窗口效果添加了很多其他代码,但这些只是用于美化,使这个窗口更绚丽。所以,我们最后定义的CSS代码形

如:

复制代码 代码如下:

#popupcontent{

position: absolute;

visibility: hidden;

overflow: hidden;

border:1px solid #CCC;

background-color:#F9F9F9;

border:1px solid #333;

padding:5px;

}

从上面CSS代码中的红色部分可以看出:这个DIV层初始默认状态是不可见的。

大家可以根据需要对以上代码进行美化,但请务必保留position,visibility,overflow三个属性。

JavaScript代码用于触发和显示弹出窗口:

这可能是本教程最重要最有趣的地方了。我们接下来会编写2个过程函数分别用于显示和隐藏上面那个DIV弹窗。当然,这两个函数之中会包含一些主体逻辑。

过程函数中需要顺序包含的逻辑:

计算JavaScript弹出窗口在屏幕上的显示位置(定位);

在弹出窗口中添加一个状态栏(或按钮),用于关闭打开状态下的窗口;

显示弹出窗口。

为了简单起见,本例中我们设置的显示位置是Top:200,Left:200。即以浏览器内容框的左上角为坐标,向下偏移200PX,向左偏移200PX。

弹出窗口的大小我们可以在显示函数的参数中进行设置,包括两个参数:窗口长度和窗口宽度。

如果你需要将本例中的代码进行二次开发,有个地方需要特别注意,那就是获取弹出窗口DIV层的DOM对象,我们可以通过下面这个getElementById函数来获取ID名为“Popcontent”的DOM对象。

如何用javascript写碰壁反弹效果

碰壁反弹这个效果真的是挺有趣的,看起来就比较的高大上,而且写碰壁反弹成功后,也就能做些网页小游戏了。虽然这么说,但其实这个效果并不难写。只是坑比较的多,很多工作多年的程序员都可能会陷进去。

废话不多说,我们写起来:

1.CSS文件:

style

body{

border-style: solid;

border-color: sliver;

border-width: 5px;

margin-left: 100px;

width:1000px;

height:800px;

}

#screen{

width:800px;

height:600px;

background-color:#272822;

position:relative;

left:100px;

top:100px;

}

#egg{

width:50px;

height:50px;

background-color:red;

position:relative;

}

/style

2.body内容:

body

div id="screen"

div id="egg"

/div

/div

/body

3.JavaScript脚本:

var eggX=0;

var eggY=0;

var directX=1;

var directY=1;

function test(){

eggX+=directX;

eggY+=directY;

egg.style.left=eggX+"px";

egg.style.top=eggY+"px";

if(eggX+egg.offsetWidth=document.getElementById("screen").clientWidth||eggX=0) {

directX=-directX;

}

if(eggY+egg.offsetHeight=document.getElementById("screen").clientHeight||eggY=0){

directY=-directY;

}

}

setInterval("test()",1);

说明:拷贝代码,我们就能看到一个碰壁反弹的方框了。当然如果想要换成图片,直接将div里的内容换掉就OK了。不过这样似乎太美水准了点,在这附上完整代码(有障碍物的):

!DOCTYPE html

html

head

meta http-equiv="content-type" content="text/html; charset=UTF-8"

title碰壁反弹/title

style

body{

border-style: solid;

border-color: sliver;

border-width: 5px;

margin-left: 100px;

width:1000px;

height:800px;

}

#screen{

width:800px;

height:600px;

background-color:#272822;

position:relative;

left:100px;

top:100px;

}

#egg{

width:50px;

height:50px;

background-color:red;

position:relative;

}

#cock{

position:relative;

left:200px;

top:200px;

width:200px;

height:30px;

background-color: blue;

cursor: pointer;

}

/style

/head

body

div id="screen"

div id="egg"

/div

div id="cock" onmousedown="startDrag(this)" onmousemove="drag(this)" onmouseup="stopDrag(this)"

/div

/div

/body

script type="text/javascript"

var eggX=0;

var eggY=0;

var directX=1;

var directY=1;

function test(){

eggX+=directX;

eggY+=directY;

egg.style.left=eggX+"px";

egg.style.top=eggY+"px";

if(eggX+egg.offsetWidth=document.getElementById("screen").clientWidth||eggX=0) {

directX=-directX;

}

if(eggY+egg.offsetHeight=document.getElementById("screen").clientHeight||eggY=0){

directY=-directY;

}

if(eggY+egg.offsetHeight=document.getElementById("cock").offsetTop(eggX+egg.offsetWidth=200eggX+egg.offsetWidth=400)){

directY=-directY;

}

if((eggY-30)=document.getElementById("cock").offsetTop(eggX+egg.offsetWidth=200eggX+egg.offsetWidth=400)){

directY=-directY;

}

}

setInterval("test()",1);

/script

/html

现在JavaScript可以做哪些有趣的事

你好!

JavaScript的诞生首先就是网页脚本

之后的html api让JavaScript有了操作DOM和渲染DOM的能力,于是可以生成整个网页

苹果又加了料,在webkit component里加入了canvas /,于是js可以绘图

后来微软提出的的ajax和新的H5脚本诞生了SPA的概念,于是有了网页应用

我能画画,我能交互,我要成为高达!于是基于JavaScript的网页游戏如雨后春笋

Ryan Dahl这个人想搞点大事情,“要有服务器”,于是有了 NodeJS

希望我的回答能帮助你!

望采纳谢谢????

祝生活愉快!

当前题目:有趣javascript,有趣的故事
文章起源:https://www.cdcxhl.com/article38/dsicipp.html

成都网站建设公司_创新互联,为您提供网站内链网页设计公司标签优化外贸网站建设微信公众号商城网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设