15天学会jQuery (0-5)
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
jquery是一个了不起的javascript库,它可以是我们用很少的几句代码就可以创建出漂亮的页面效果。从网站的方面说,这使得javascript更加有趣。 如果你这样想:“孩子,我需要另外一个javascript库,就好比我i need another hole in my head”那么加入这个俱乐部吧。这正是我第一次遇到的时候所想的。 我已经用过了moo.fx, scriptaculous, tw-sack, 和 prototype. 我曾参与了rico, yahoo yui和其他一些库的开发。 没有了phpjavascript和我一点也不亲近了。但是我还是尽全力保持头脑清醒,并尽量保持用ajax去思考。 所以当我遇到jquery的时候我想:“还需要另外一个javascript库吗?不了,谢谢…” why 为什么我改变我我对jquery的看法,以及为什么你要考虑去使用它? 很简单,只要你看一眼过使用jquery的页面你就会发现它是如此的简单易用.只用很少的几行,就能表现出很优雅的效果. 有一天当我突然看到一些用jquery写的代码时我一下子豁然开朗了. 早茶的过程中,我例行公务的去翻阅我的订阅,去看每日必看的设计博客的时候我看到了一个用jquery写的javascript的例子.事实证明,这些代码还是有些和浏览器关联的bug,不过这些概念还是我以前从来没有见过的. 还有那些代码… 代码看起来很简单看起来不像我以前见过的.但也不无道理. 我开始通读文档,并且惊奇的发现用一点点代码竟然能做这么多事情. when 你应当在你需要的时候使用jquery. 给你一个小型的库文件 dom强大的控制能力 不费吹灰之力的工作,和少许的努力. 或者 快速的通过ajax 没有大量无用的代码 和一些基本的动画效果 但是 如果你需要超级花式效果,动画,拖放,和超级平稳动画,那么你可能想使用prototype.他是一个有大量动画效果的类库. where 你可以jquery的官方网站下载到他的源代码(10k). who jquery was created by john resig.
[hilitecolor=#808080]15 days of jquery(day 1)---比window.onload更快一些的载入[/hilitecolor]
但有时候等待页面载入还是不够快。 只有少数大型的图片文件会被快速的载入,而大部分大型的图片文件会使window.onload()载入的很慢。所以当我为最近的网络营销创建一个web应用程序的时候我不得希望更快一点。有一些围绕window.onload()的新研究(比如brother cake)的代码是一种快速的方式。如果你需要,可以试试。 但是如果你要做一些dom(文档对象模型)javascript的编程,那么你为什么不试试jquery,它就像你自己亲自制作一个蛋糕,并品尝它。(双关brother cake,俏皮话)。 jquery有一个用来作为dom快速载入javascript的得心应手的小函数,那就是ready… 他在页面加载完成之前执行。 $(document).ready(function(){ 你以前可能见过类似于init()之类的函数,你会发现jquery会快很多。 在以后的教程里我们会一遍又一遍的用到这个函数。 ok你现在可以尝试一下代码:(记得把jquery引用进你的页面哦,不记得的话看看上篇。) $(document).ready(function(){
[hilitecolor=#808080]15 days of jquery(day 2)---很容易的制作双色表格 [/hilitecolor] http://w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
ps: 飘飘说我的table没有,我知错了... 这里有一个jquery的技巧不得不提一下:jquery的链式操作,什么是链式操作呢? 我们来看看,本来应该写成这样子的: $(".stripe tr").mouseover(function(){ $(".stripe tr").mouseover(function(){ [hilitecolor=#808080]15 days of jquery(day 3)---巧妙的伪装链接[/hilitecolor] 目标 我们要使用jquery去创建一小段代码,这段代码会把一个页面所有的超链接转换并且伪装起来. 为什么? 一些下属经销商认为,一部分用户有足够的悟性发现会员链接,并能尽量避免通过点击url链接直接进入浏览器,从而“欺骗”下属经销商脱离代理(假设购买行为已经发生) “老”办法 有很多下属经销商千方百计的掩饰他们的链接,避免人们通过链接找到他们.这些伎俩涉及到.htaccess和服务器端的代码. 但对于本教程,我会将重点放到”老学校”的javascript上: http://merchant-url-here.com 问题 你是一个很活跃的下级经销商,你可能会以疯狂的速度给很多个页面添加链接.并且还要给每个链接添加这种效果那么你肯定会厌倦的.加入有一天你要修改任务栏里显示的链接的时候估计你会疯掉的. jquery的解决办法 首先,我们想让javascript尽快的掩饰我们的链接所以我们应该先从这里开始: 接下来 要给所有我们想伪装的链接添加一个class,class有助于jquery帮我们找到需要伪装的链接而撇开其它不需要伪装的链接.title有两个作用:当鼠标划过链接的时候会有一个小小的盒状提示显示url:affsite.com并且同样的信息会显示在浏览器的状态栏(ie only). http://affsite.com?id=123" title="http://affsite.com" $('a.afflink')添加一个鼠标划过事件 $('a.afflink').mouseover(function(){window.status=this.title;return true;})简单的说:找到class=“afflink”的所有链接,当鼠标划过它们的时候改变浏览器状态栏信息为该链接title的内容.这个在firefox并不能正常的工作,只是在ie里起作用.在firefox的状态栏只是显示一个”done”,或者更准确的说,鼠标划过超链接对状态栏并没有任何影响.我没有更多的浏览器测试. 继续-mouseout jquery可以让我们用”链”的方式,像这样: $('a.afflink').mouseover(function(){window.status=this.title;return true;}) $('a.afflink').mouseover(function(){window.status=this.title;return true;}); 把这些代码放到一起: in “days” to come you’ll see me tackle issues that get more involved and apply to almost anyone with a website - whether you monetize your traffic or not. [hilitecolor=#808080]15 days of jquery(day 4)---安全邮件列表[/hilitecolor] name [at-no-spam] website.com 问题:链接式的更方便,而且把邮件地址敲入收件人栏还有可能会出错. 联系方式 问题:你冒着这么大的风险就是因为有一个垃圾邮件借用你的帐户发送大量的垃圾邮件(除非你使用真正的安全邮件脚本).而这样就扼杀了那些只想给你发个简单邮件的用户. javascript加密 问题:你的邮件仍然暴露在光天化日之下,即使你使用了复杂的密码技术给它带上面具.还有谁希望为了发送一封邮件而启用第三方的解密网站,反正我是不会. 藏在一种简单的形式后面 (有一个例子,但是打不开了.)http://simon.incutio.com/contact/我能想到的没有人…但是让我们看看是否我们能改进观念。 可能的解决办法:ajax 我提供的解决方案将比目前设计师们使用的方法有如下优势: 易于实施 概念 1.用jquery从服务器上把html文件内容抓下来. 我要示范一些例子来显示邮件链接地址,当访客点击一个按钮或者一个链接的时候,页面就会跳转到对应的那个例子里. 按钮点击--立即显示 链接点击--淡出 页面载入--淡出 页面载入--立即显示 (说明:所谓的立即显示,我的意思是说”没有花哨的效果而尽快的显示电子邮件地址”) 代码 这里发表非商业共创使用许可,如果你希望将代码使用在你的商业产品中时,请联系我.我正在一个新的cms for web designers中使用它. 为什么这种方式比普通的mailto链接安全? 真正的问题是垃圾邮件制造者会使用自动化软件从html源文件中寻找电子邮件链接,这种做法和google一样:使用相关链接. 他么就和我们大部分人一样懒惰.所以很难所他们不会拿个本子放在键盘旁边记下你的电子邮件地址. 请查看我提供的示例的源代码,你将不会在html里找到任何的邮件地址. 这几坚实的保证了你绝对不会收到垃圾邮件,只会从朋友或者浏览者那里收到邮件. 但是从页面中移除邮件地址,………………… 最后一点说明 先仔细看看前面三个例子,你会看到我使用了ajax回调函数来触发slidedown() 和 show() 效果. 换句话说,我希望ajax调用收到信息(html)时jquery才开始slidedown() 效果.把秘密粘贴到我们简单的服务段脚本并且等待服务器返回信息. 正确的方法: $(document).ready(function(){ $(document).ready(function(){ [hilitecolor=#808080]15 days of jquery(day 5)---包起来--懒人用jquery生成的html[/hilitecolor] 当我一边“在用jquery方法编写”和一边“进行复杂的文件上传”,我已经筋疲力尽。然而这两种操作的代码是一种较浅的,它只不过是你才刚刚开始解决的一些简单问题。 所以下来我开始介绍: 尽管我在我的网站用所有的css样式表去进行表格设计(也许这要花费两年半的时间或者更多),我已经用了很多我能找到的在这方面的信息。回到2004年5月(古代史)a list a part有一篇《关于创建阴影的伟大教程(洋葱皮投影)》可以应用到任何图片,无论尺寸多大. 那片文章的应经不能再评论了,但还是有些人希望能够再出篇教程. 问题 一些css工程师用一些”不相干”的标记,就是为了使背景图片能够应用到每一个元素上.例如: 这里是a list a part用到的代码: 按着这个思路… 目标 在这里,我要想你展示如何用jquery轻而易举的将多于的标记从你的源代码中剔除.运用这个方法,让你的代码更加干净(更重要的是)将使以后变换布局容易的多. 解 这里,看看jquery是如何击退这个问题的. $(document).ready(function(){ 仔细看看 $(document).ready() 是jquery版的window.onload() $(“img.dropshadow”) 告诉jquery找到带有class=“dropshadow”的图片,如果你想用一个id你可以这样: $(“img#dropshadow”)wrap() (wrap() tells jquery to use the dom (document object method model) to wrap the images with the class=”dropshadow” in the html inside the parenthesis. ) 最后的结果 傻乎乎的图片,但是和original onion skinned drop shadows用的是一样的. and now, the jquery method, which uses javascript to wrap the image at runtime: view the source of this page and you'll see the huge difference in markup! |