jQuery学习笔记(一)

本日志内容均来自 http://www.w3school.com.cn/jquery/ 教程,边看边整理。 

jQuery 是一个“写的更少,但做的更多”的轻量级 JavaScript 库。

jQuery可以在jQuery.com被下载。

有两个版本的 jQuery 可供下载:

  • Production version - 用于实际的网站中,已被精简和压缩。

  • Development version - 用于测试和开发(未压缩,是可读的代码)

可以把下载文件放到与页面相同的目录中,这样更方便使用。

向页面添加jQuery库,<script> 标签应该位于页面的 <head> 部分。

<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs
/jquery/1.4.0/jquery.min.js"></script>
</head>

库的替代

Google 和 Microsoft 对 jQuery 的支持都很好。

如果您不愿意在自己的计算机上存放 jQuery 库,那么可以从 Google 或 Microsoft 加载 CDN jQuery 核心文件。

使用 Google 的 CDN

<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs
/jquery/1.4.0/jquery.min.js"></script>
</head>

使用 Microsoft 的 CDN

<head>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery
/jquery-1.4.min.js"></script>
</head>

使用Google或Microsoft提供的在线js的好处:

许多用户在访问其他站点时,已经从谷歌或微软加载过 jQuery。所有结果是,当他们访问您的站点时,会从缓存中加载 jQuery,这样可以减少加载时间。同时,大多数 CDN 都可以确保当用户向其请求文件时,会从离用户最近的服务器上返回响应,这样也可以提高加载速度。

jQuery 库包含以下特性:

  • HTML 元素选取

  • HTML 元素操作

  • CSS 操作

  • HTML 事件函数

  • JavaScript 特效和动画

  • HTML DOM 遍历和修改

  • AJAX

  • Utilities

jQuery基本语法:

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。

基础语法是:$(selector).action()

  • 美元符号定义 jQuery

  • 选择符(selector)“查询”和“查找” HTML 元素

  • jQuery 的 action() 执行对元素的操作

示例

$(this).hide() - 隐藏当前元素

$("p").hide() - 隐藏所有段落

$(".test").hide() - 隐藏所有 class="test" 的所有元素

$("#test").hide() - 隐藏所有 id="test" 的元素

 

文档就绪函数

您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中:

$(document).ready(function(){
--- jQuery functions go here ----
});

 

这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。

如果在文档没有完全加载之前就运行函数,操作可能失败。下面是两个具体的例子:

  • 试图隐藏一个不存在的元素

  • 获得未完全加载的图像的大小

jQuery 选择器 | 选择器允许您对元素组或单个元素进行操作。

jQuery 元素选择器

jQuery 使用 CSS 选择器来选取 HTML 元素。

$("p") 选取 <p> 元素。

$("p.intro") 选取所有 class="intro" 的 <p> 元素。

$("p#demo") 选取所有 id="demo" 的 <p> 元素。

jQuery 使用 XPath 表达式来选择带有给定属性的元素。

$("[href]") 选取所有带有 href 属性的元素。

$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。

$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。

$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

jQuery CSS 选择器

jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。

下面的例子把所有 p 元素的背景颜色更改为红色:

$("p").css("background-color","red");

jQuery 是为事件处理特别设计的。

<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    //do something
    $("p").hide();
  });
});
</script>

单独文件中的函数

<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="my_jquery_functions.js"></script>
</head>

jQuery 名称冲突

jQuery 使用 $ 符号作为 jQuery 的简介方式。

某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。

jQuery 使用名为 noConflict() 的方法来解决该问题。

var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。

<script>
$.noConflict();
jQuery(document).ready(function(){
  jQuery("button").click(function(){
    jQuery("p").text("jQuery 仍在运行!");
  });
});
</script>
<script>
var jq = $.noConflict();
jq(document).ready(function(){
  jq("button").click(function(){
    jq("p").text("jQuery 仍在运行!");
  });
});
</script>

jQuery常用事件

$(document).ready(function); //将函数绑定到文档的就绪事件(当文档完成加载时)

$(selector).click(function); //触发或将函数绑定到被选元素的点击事件

$(selector).dblclick(function); //触发或将函数绑定到被选元素的双击事件

$(selector).focus(function); //触发或将函数绑定到被选元素的获得焦点事件

$(selector).mouseover(function); //触发或将函数绑定到被选元素的鼠标悬停事件

 

jQuery hide() 和 show()

$("#hide").click(function(){
  $("p").hide();
});

$("#show").click(function(){
  $("p").show();
});

//语法,
可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
//通过 jQuery,您可以使用 toggle() 方法来切换 hide() 和 show() 方法。
//显示被隐藏的元素,并隐藏已显示的元素:
$("button").click(function(){
  $("p").toggle();
});

//语法,可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
$(selector).toggle(speed,callback);

jQuery Fading 方法

通过 jQuery,您可以实现元素的淡入淡出效果。

jQuery 拥有下面四种 fade 方法:

  • fadeIn()

  • fadeOut()

  • fadeToggle()

  • fadeTo()

//用于淡入已隐藏的元素。
//可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
$(selector).fadeIn(speed,callback);

//用于淡出可见元素。
//可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
$(selector).fadeOut(speed,callback);

//jQuery fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。
//如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果。
//如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果。
//如果callback非空,无论是完成淡入或者淡出,callback都会被触发
$(selector).fadeToggle(speed,callback);

//必需的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
//fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。
//可选的 callback 参数是该函数完成后所执行的函数名称。
$(selector).fadeTo(speed,opacity,callback);

jQuery 滑动方法

通过 jQuery,您可以在元素上创建滑动效果。

jQuery 拥有以下滑动方法:

  • slideDown()

  • slideUp()

  • slideToggle()

三组方法类似于fadeIn() ,fadeOut(), fadeToggle(),这里不做详细记录

jQuery 动画 - animate() 方法

//!!默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。

//必需的 params 参数定义形成动画的 CSS 属性。
//可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
//可选的 callback 参数是动画完成后所执行的函数名称。
$(selector).animate({params},speed,callback);

//example:把 <div> 元素移动到左边,直到 left 属性等于 250 像素为止:
实例
$("button").click(function(){
  $("div").animate({left:'250px'});
}); 

//操作多个属性
$("button").click(function(){
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  });
}); 

//使用相对值
//也可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=
$("button").click(function(){
  $("div").animate({
    left:'250px',
    height:'+=150px',
    width:'+=150px'
  });
});

//甚至可以把属性的动画值设置为 "show"、"hide" 或 "toggle":
$("button").click(function(){
  $("div").animate({
    height:'toggle'
  });
});

//jQuery 默认提供针对动画的队列功能。
//jQuery 会内部创建这些动画的运行队列。与TweenLite不同,不需要手动创建队列
$("button").click(function(){
  var div=$("div");
  div.animate({height:'300px',opacity:'0.4'},"slow");
  div.animate({width:'300px',opacity:'0.8'},"slow");
  div.animate({height:'100px',opacity:'0.4'},"slow");
  div.animate({width:'100px',opacity:'0.8'},"slow");
});


//当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。
//同时,色彩动画并不包含在核心 jQuery 库中。
//如果需要生成颜色动画,您需要从 jQuery.com 下载 Color Animations 插件。

 

jQuery stop() 方法

jQuery stop() 方法用于停止动画或效果,在它们完成之前。

stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。

//可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。

//可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。

//因此,默认地,stop() 会清除在被选元素上指定的当前动画。

$(selector).stop(stopAll,goToEnd);
<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js">
</script>
<script> 
$(document).ready(function(){
  $("#start").click(function(){
    $("div").animate({left:'100px'},5000);
    $("div").animate({fontSize:'3em'},5000);
  });
  
  $("#stop").click(function(){
    $("div").stop();
  });

  $("#stop2").click(function(){
    $("div").stop(true);
  });

  $("#stop3").click(function(){
    $("div").stop(true,true);
  });
  
});
</script> 
</head>
<body>

<button id="start">开始</button>
<button id="stop">停止</button>
<button id="stop2">停止所有</button>
<button id="stop3">停止但要完成</button>
<p><b>"开始"</b> 按钮会启动动画。</p>
<p><b>"停止"</b> 按钮会停止当前活动的动画,但允许已排队的动画向前执行。</p>
<p><b>"停止所有"</b> 按钮停止当前活动的动画,并清空动画队列;因此元素上的所有动画都会停止。</p>
<p><b>"停止但要完成"</b> 会立即完成当前活动的动画,然后停下来。</p> 

<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>

</body>
</html>

jQuery - Chaining

通过 jQuery,您可以把动作/方法链接起来。

Chaining 允许我们在一条语句中允许多个 jQuery 方法(在相同的元素上)。

使用Chaining的好处是可以减少浏览器查找操作元素的次数。

$("#p1").css("color","red").slideUp(2000).slideDown(2000);

W3School资料内描述,当进行链接时,代码行会变得很差。

暂时不清楚代码变差是指的代码可维护性还是性能。

 

posted @ 2016-03-29 15:44  无声电影  阅读(156)  评论(0)    收藏  举报