jquery 动画和元素属性操作 基础知识
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
可选的参数 speed 给出显示或隐藏内容的速度,可以使用“slow”,”fast”或者数字代表微秒。
第二个可选参 数为回调函数,在显示或隐藏结束时调用。下面代码在1秒钟内隐藏内容:
$("button").click(function(){
$("p").hide(1000);
});
缺省情况下,所有HTML元素的位置的固定的,不能移动,因此如果需要修改 HTML元素的位置,需要事先将它们的CSS属性的位置设置为relative, fixed, 或absolute。
使 用animate 修改多个属性
下面的例子,可以使用animate同时修改多个属性:
$("button").click(function(){
$("center").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
基本所有的CSS属性都可以在animation中使用,颜色修改不在jQuery核心库中,需 要Color Animiation插件来完成。
使用属性相对值
对于CSS属性,除了上面使用的绝对大小 ,也可以使用相对值来定义,使用 “+”“-”。
$("button").click(function(){
$("center").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
jQuery的使用stop()方法在动画结束之前停止动画。
基本语法如下:
$(selector).stop (stopAll,goToEnd);
可选参数stopAll 指明是否同时清除“动画队列”,缺省为false.意味着 只停止当前活动的动画,之后的动画则继续运行。
可选参数goToEnd 指明是否立即结束当前动 画,缺省为false.
因此缺省的stop()动作为终止指定HTML元素的当前动画效果。如:
$("#stop").click(function(){
$("#panel").stop();
});
JavaScript语句是一行一行执行的,然而对于前面的动画效果语句,后面的语句可以在动画效果完成前就执行,因此可能会造成错误的结果。
所以之前的hide,show,fadeIn,fadeOut,slideIn,slideOut,animation都支持一个callback可选参数,支持为这些方法添加一个回调函数,在动画完成之后调用。
比如,下面的例子中<p>隐藏之后执行:
$("button").click(function(){
$("p").hide("slow",function(){
alert("The paragraph is now hidden");
});
});
而下面的例子的Alert 在
隐藏完成之前就显示。
$("button").click(function(){
$("p").hide(1000);
alert("The paragraph is now hidden");
});
jQuery支持将多个方法链接在一起,比如介绍的多个animation(),这个链接也可以应用到其它方法,构成一个方法链。
使用这个方法,对于同一个元素,链接多个方法,浏览器无需多次查找HTML元素。
下面的方法,可以把css,slideUp,slideDown串接在一起:
$("#p1")
.css("color","red")
.slideUp(2000)
.slideDown(2000);
其中三个简单而 有用的方法如下:
text() – 设置或取得指定元素的文本内容。
html() – 设置或取得指定 元素的内容(包括HTML标记)
val() – 设置或取得表单某个输入域的值。
例如,下面代码 使用html()和text()方法取得HTML元素的内容:
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});下面的代码取得Form中Input 的内容:
$("#btn1").click(function(){
alert("Value: " + $("#test").val());
});
除了上面的方法外,attr()方法用来取得某个元素的属性。
jQuery其实使用上面同样的三个方法来赋值。
text() – 设置或取得指 定元素的文本内容。
html() – 设置或取得指定元素的内容(包括HTML标记)
val() – 设置或 取得表单某个输入域的值。
比如下面代码就是使用上面三种方法给HTML元素或Form赋值
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("Dolly Duck");
});