叶子网络bbs论坛

标题: jQuery 网页特效编程 [打印本页]

作者: rain    时间: 2014-10-19 12:14
标题: jQuery 网页特效编程
本帖最后由 rain 于 2017-1-6 16:48 编辑

什么是jQuery ?
JQuery只是一个人用javascript把JS里面的常用函数及自定义函数打包到一个文件而异,方便大家调用,只是这个人做的比较牛,这个函数包用着很方便,所以很多人都用,就记住了这个名字JQuery,相比大家做网站时都会专门有一个js文件,存放这个网站所调用的JS函数,那这个JQuery只是做的更专业,更牛B,更强大,更方便而异,你原来可能要几行代码来实现的功能,用JQuery可能只用一行就搞定了。
Jquery资源一:http://www.jq22.com/,各种炫酷效果
资源二:http://www.jqshare.com/     jquery分享
资源三:jquery.com          jquery官网
Jquery学习园地一:http://kb.cnblogs.com/zt/jquery/   博客园jquery专题
学习园地二:http://www.jquerycn.cn/    jquery中文网
学习园地三:http://bbs.miaov.com/forum.php      各种学员作品
学习资料:http://wenku.baidu.com/view/09db2082b9d528ea81c77992.html?re=view    JQ函数集

常用函数和属性:
Dom:
Attribute:属性
$("p").addClass(css中定义的样式类型); 给某个元素添加样式
$("img").attr({src:"test.jpg",title:"test Image"}); 给某个元素添加属性/值,参数是map
$("input").attr({"checked", "checked"});
$("img").attr("title", function() { return this.src }); 给某个元素添加属性/值
$("元素名称").html(); 获得该元素内的内容(元素,文本等)
$("元素名称").html("<b>new stuff</b>"); 给某元素设置内容
$("元素名称").removeAttr("属性名称") 给某元素删除指定的属性以及该属性的值
$("元素名称").removeClass("class") 给某元素删除指定的样式
$("元素名称").text(); 获得该元素的文本
$("元素名称").text(value); 设置该元素的文本值为value
$("元素名称").toggleClass(class) 当元素存在参数中的样式的时候取消,如果不存在就设置此样式
$("input元素名称").val(); 获取input元素的值
$("input元素名称").val(value); 设置input元素的值为value
Manipulation:
$("元素名称").after(content); 在匹配元素后面添加内容
$("元素名称").append(content); 将content作为元素的内容插入到该元素的后面
$("元素名称").appendTo(content); 在content后接元素
$("元素名称").before(content); 与after方法相反
$("元素名称").clone(布尔表达式) 当布尔表达式为真时,克隆元素(无参时,当作true处理)
$("元素名称").empty() 将该元素的内容设置为空
$("元素名称").insertAfter(content); 将该元素插入到content之后
$("元素名称").insertBefore(content); 将该元素插入到content之前
$("元素").prepend(content); 将content作为该元素的一部分,放到该元素的最前面
$("元素").prependTo(content); 将该元素作为content的一部分,放content的最前面
$("元素").remove(); 删除所有的指定元素
$("元素").remove("exp"); 删除所有含有exp的元素
$("元素").wrap("html"); 用html来包围该元素
$("元素").wrap(element); 用element来包围该元素
Traversing:
add(expr)当前匹配元素集合增加新的匹配元素集合‘expr',形成新的匹配元素集合;
例子:

代码如下:

$(document).ready(function(){   
    $("div").css("border", "2px solid red")
                 .add("p")//文档中的P元素会应用背景色为yellow的CSS样式;
                 .css("background", "yellow");   
   });


children(expr)从当前匹配元素集合中得到各个元素第一层子集集合,形成新的元素集合
contains(str) 匹配集合中包含str这个变量文本的元素集合,返回匹配元素集合
end()用于返回到调用 find() 或 parents() 函数(或者其它遍历函数)之前的 jQuery 对象
例子
$("#div1").find("p").hide().end().hide()
第一个hide()是对于p标签的 然后用end()结束对p标签的引用而返回到#div1标签
所以第二个hide()是对于#div1起作用的
如果不加end() 则两个hide()都是对p标签起作用
filter(expression)
find(expr)
filter和find的区别:
filter将在一组已经选取的元素里面选择;
find将在一组已经选取的元素的子节点里面选择;
<html代码>
<div class="css">
       <p class="rain">测试1</p>
</div>
<div class="rain">
       <p>测试2</p>
</div>
</html>
如果我们使用find()方法:
var $find =   $("div").find(".rain");
alert( $find.html() ) ;
将会输出:测试1
如果使用filter()方法:
var $filter = $("div").filter(".rain");
alert( $filter.html() );
将会输出:测试2
区别在于:
find()会在div元素内 寻找 class为rain 的元素。
而filter()则是筛选div的class为rain的元素。
一个是对它的子集操作,一个是对自身集合元素筛选。
is(expr)//判断现有集合是否属于‘expr'集合中的一部分或是相等。如果是则返回true,否则返回false
next(expr)//取得一个包含匹配的元素集合中每一个元素紧邻的后面兄弟元素集合。
not(el)//匹配集合中没有满足过滤要求的元素集合
例子:
$("div").not(".green, #blueone")   
$("input:not(:checked) + span")
$('tr:not([th])dd')
parent(expr)取得一个包含着所有匹配元素的唯一父元素的元素集合
parents(expr)//得到匹配元素集合中各个元素的所有祖先元素集合
prev(expr)得到匹配元素集合中各个元素紧邻的前一个兄弟元素集合
siblings(expr)得到所有匹配元素集合中各个元素的所有兄弟元素集合
Core:
$(html).appendTo("body") 相当于在body中写了一段html代码
$(elems) 获得DOM上的某个元素
$(function(){……..}); 执行一个函数
$("div > p").css("border", "1px solid gray"); 查找所有div的子节点p,添加样式
$("input:radio", document.forms[0]) 在当前页面的第一个表单中查找所有的单选按钮
jQuery为开发插件提拱了两个方法,分别是:
jQuery.extend(object) 为扩展jQuery类本身.为类添加新的方法。
举例
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
引用jQuery:

代码如下:

$.min(3,4); //return 3
jQuery.fn.extend(object)给jQuery对象添加方法,是对jQuery.prototype进得扩展
jQuery.fn = jQuery.prototype = {
   init: function( selector, context ) {//.... 
   //......
};



举例
代码如下:

$.fn.extend({        
   alertWhileClick:function(){      
       $(this).click(function(){      
            alert($(this).val());     
        });     
     }     
});


引用jQuery:
$("#input1").alertWhileClick();
jQuery( expression, [context] ) ---$( expression, [context]); 在默认情况下,$()查询的是当前HTML文档中的DOM元素。
each( callback ) 以每一个匹配的元素作为上下文来执行一个函数
举例:1

代码如下:

$("span").click(function){
$("li").each(function(){
$(this).toggleClass("example");
});
});


举例:2
代码如下:

$("button").click(function () {
$("div").each(function (index, domEle) {
// domEle == this
$(domEle).css("backgroundColor", "yellow");
if ($(this).is("#stop")) {
$("span").text("Stopped at div index #" + index);
return false;
}
});
});


jQuery Event:事件
ready(fn); $(document).ready()注意在body中没有onload事件,否则该函数不能执行。在每个页面中可以有很多个函数被加载执行,按照fn的顺序来执行。
例子:
$(document).ready(function(){alert("aa");}
bind( type, [data], fn ) 为每一个匹配元素的特定事件(像click)绑定一个或多个事件处理器函数。可能的事件type属性有:blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove,mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress,keyup, error
例子1:
$('#myBtn').bind("click",function(){   
alert('click');
});
例子2:
function handler(event) {
alert(event.data.foo);
}
$("p").bind("click", {foo: "bar"}, handler)
one( type, [data], fn ) 为每一个匹配元素的特定事件(像click)绑定一个或多个事件处理器函数。在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。
type(String) : 事件类型。
data(Object) : (可选) 作为event.data属性值传递给事件对象的额外数据对象。
fn(Function) : 绑定到每个匹配元素的事件上面的处理函数。
trigger( type, [data] ) 在每一个匹配的元素上触发某类事件。
$("p").click( function (event, a, b) {
   // 一个普通的点击事件时,a和b是undefined类型
   // 如果用下面的语句触发,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]); toggle( fn, fn ) 如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。
$("p").toggle(function(){
$(this).addClass("selected");
},
function(){
$(this).removeClass("selected");
}
);
例子:
$("p").bind("myEvent", function (event, message1, message2) {
   alert(message1 + ' ' + message2);
});
$("p").trigger("myEvent", ["Hello","World!"]);
triggerHandler( type, [data] ) 这一特定方法会触发一个元素上特定的事件(指定一个事件类型),同时取消浏览器对此事件的默认行动
unbind( [type], [data] ) 反绑定,从每一个匹配的元素中删除绑定的事件。
$("p").unbind() 移除所有段落上的所有绑定的事件
$("p").unbind( "click" ) 移除所有段落上的click事件
例子:

代码如下:

var foo = function () {
   // 处理某个事件的代码
};
$("p").bind("click", foo); // ... 当点击段落的时候会触发函数foo
$("p").unbind("click", foo); // ... 再也不会被触发 foo
hover( over, out ) over,out都是方法, 当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
$("p").hover(function(){
$(this).addClass("over");
},
function(){
$(this).addClass("out");
}
);



元素事件列表说明
注:不带参数的函数,其参数为可选的 fn。jQuery不支持form元素的reset事件。
事件描述,支持元素或对象
focus( ) 元素获得焦点 a, input, textarea, button, select, label, map, area
blur( ) 元素失去焦点 a, input, textarea, button, select, label, map, area
$("#in").focus(function(){
   if($("#in").val()=='关键字'){
   $("#in").val("")};
}).blur(function(){
   if($("#in").val()==''){
   $("#in").val("关键字").css("color","#ccc")};
});
change( ) 用户改变域的内容 input, textarea, select
change事件会在元素失去焦点的时候触发,也会当其值在获得焦点后改变时触发。
$("input[type='text']").change( function() {
   // 这里可以写些验证代码
});
click( ) 鼠标点击某个对象 几乎所有元素
dblclick( ) 鼠标双击某个对象 几乎所有元素
error( ) 当加载文档或图像时发生某个错误 window, img
keydown( ) 某个键盘的键被按下 几乎所有元素
keypress( ) 某个键盘的键被按下或按住 几乎所有元素
keyup( ) 某个键盘的键被松开 几乎所有元素
load( fn ) 某个页面或图像被完成加载 window, img
mousedown( fn ) 某个鼠标按键被按下 几乎所有元素
mousemove( fn ) 鼠标被移动 几乎所有元素
mouseout( fn ) 鼠标从某元素移开 几乎所有元素
mouseover( fn ) 鼠标被移到某元素之上 几乎所有元素
mouseup( fn ) 某个鼠标按键被松开 几乎所有元素
resize( fn ) 窗口或框架被调整尺寸 window, iframe, frame
scroll( fn ) 滚动文档的可视部分时 window
select( ) 文本被选定 document, input, textarea
submit( ) 提交按钮被点击 form
unload( fn ) 用户退出页面 window
JQuery Ajax 方法说明:
load( url, [data], [callback] ) 装入一个远程HTML内容到一个DOM结点。
$("#feeds").load("feeds.html"); 将feeds.html文件载入到id为feeds的div中
$("#feeds").load("feeds.php", {limit: 25}, function(){
alert("The last 25 entries in the feed have been loaded");
});
jQuery.get( url, [data], [callback] ) 使用GET请求一个页面。
$.get("test.cgi", { name: "John", time: "2pm" }, function(data){
alert("Data Loaded: " + data);
});
jQuery.getJSON( url, [data], [callback] ) 使用GET请求JSON数据。
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});
jQuery.getScript( url, [callback] ) 使用GET请求JavaScript文件并执行。
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});
jQuery.post( url, [data], [callback], [type] ) 使用POST请求一个页面。
ajaxComplete( callback ) 当一个AJAX请求结束后,执行一个函数。这是一个Ajax事件
$("#msg").ajaxComplete(function(request, settings){
$(this).append("<li>Request Complete.</li>");
});
ajaxError( callback ) 当一个AJAX请求失败后,执行一个函数。这是一个Ajax事件
$("#msg").ajaxError(function(request, settings){
$(this).append("<li>Error requesting page " + settings.url + "</li>");
});
ajaxSend( callback ) 在一个AJAX请求发送时,执行一个函数。这是一个Ajax事件
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("<li<Starting request at " + settings.url
+ "</li<");
});
ajaxStart( callback ) 在一个AJAX请求开始但还没有激活时,执行一个函数。这是一个Ajax事件
当AJAX请求开始(并还没有激活时)显示loading信息
$("#loading").ajaxStart(function(){
$(this).show();
});
ajaxStop( callback ) 当所有的AJAX都停止时,执行一个函数。这是一个Ajax事件
当所有AJAX请求都停止时,隐藏loading信息。
$("#loading").ajaxStop(function(){
$(this).hide();
});
ajaxSuccess( callback ) 当一个AJAX请求成功完成后,执行一个函数。这是一个Ajax事件
当AJAX请求成功完成时,显示信息。
$("#msg").ajaxSuccess(function(evt, request, settings){
$(this).append("<li>Successful Request!</li>");
});
jQuery.ajaxSetup( options ) 为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。
设置默认的全局AJAX请求选项。
$.ajaxSetup({
url: "/xmlhttp/",
global: false,
type: "OST"
});
$.ajax({ data: myData });
serialize( ) 以名称和值的方式连接一组input元素。实现了正确表单元素序列
function showValues() {
var str = $("form").serialize();
$("#results").text(str);
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();
serializeArray( ) 连接所有的表单和表单元素(类似于.serialize()方法),但是返回一个JSON数据格式。
从form中取得一组值,显示出来
function showValues() {
var fields = $(":input").serializeArray();
alert(fields);
$("#results").empty();
jQuery.each(fields, function(i, field){
$("#results").append(field.value + " ");
});
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();
JQuery Effects 方法说明
show( ) 显示隐藏的匹配元素。
show( speed, [callback] ) 以优雅的动画显示所有匹配的元素,并在显示完成后可选地触发一个回调函数。
hide( ) 隐藏所有的匹配元素。
hide( speed, [callback] ) 以优雅的动画隐藏所有匹配的元素,并在显示完成后可选地触发一个回调函数
toggle( ) 切换元素的可见状态。如果元素是可见的,切换为隐藏的;如果元素是隐藏的,
切换为可见的。
slideDown( speed, [callback] ) 通过高度变化(向下增大)来动态地显示所有匹配的元素,在显示完成后可选地触发一个回调函数。这个动画效果只调整元素的高度,可以使匹配的元素以
"滑动"的方式显示出来。
slideUp( speed, [callback] ) 通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。这个动画效果只调整元素的高度,可以使匹配的元素以"滑动"的方式隐藏起来。
slideToggle( speed, [callback] ) 通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数。 这个动画效果只调整元素的高度,可以使匹配的元素以"滑动"的方式隐藏或显示。
fadeIn( speed, [callback] ) 通过不透明度的变化来实现所有匹配元素的淡入效果,并在动画完成后可选地触发一个回调函数。 这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。
fadeOut( speed, [callback] ) 通过不透明度的变化来实现所有匹配元素的淡出效果,并在动画完成后可选地触发一个回调函数。 这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。
fadeTo( speed, opacity, [callback] ) 把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数。 这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。
stop( ) 停止所有匹配元素当前正在运行的动画。如果有动画处于队列当中,他们就会立即开始。
queue( ) 取得第一个匹配元素的动画序列的引用(返回一个内容为函数的数组)
queue( callback ) 在每一个匹配元素的事件序列的末尾添加一个可执行函数,作为此元素的事件函数
queue( queue ) 以一个新的动画序列代替所有匹配元素的原动画序列
dequeue( ) 执行并移除动画序列前端的动画
animate( params, [duration], [easing], [callback] ) 用于创建自定义动画的函数。
animate( params, options ) 创建自定义动画的另一个方法。作用同上。

JQuery Traversing 方法说明
eq( index ) 从匹配的元素集合中取得一个指定位置的元素,index从0开始
filter( expr ) 返回与指定表达式匹配的元素集合,可以使用","号分割多个expr,用于实现多个条件筛选.
ilter( fn ) 利用一个特殊的函数来作为筛选条件移除集合中不匹配的元素。
is( expr ) 用一个表达式来检查当前选择的元素集合,如果其中至少有一个元素符合这个给定的
表达式就返回true。
map( callback ) 将jQuery对象中的一组元素利用callback方法转换其值,然后添加到一个jQuery数组中。
not( expr ) 从匹配的元素集合中删除与指定的表达式匹配的元素。
slice( start, [end] ) 从匹配元素集合中取得一个子集,和内建的数组的slice方法相同。
add( expr ) 把与表达式匹配的元素添加到jQuery对象中。
children( [expr] ) 取得一个包含匹配的元素集合中每一个元素的所有子元素的元素集合。可选的过滤器将使这个方法只匹配符合的元素(只包括元素节点,不包括文本节点)。
contents( ) 取得一个包含匹配的元素集合中每一个元素的所有子孙节点的集合(只包括元素节点,不包括文本节点),如果元素为iframe,则取得其中的文档元素
find( expr ) 搜索所有与指定表达式匹配的元素。
next( [expr] ) 取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。
nextAll( [expr] ) 取得一个包含匹配的元素集合中每一个元素所有的后面同辈元素的元素集合
parent( [expr] ) 取得一个包含着所有匹配元素的唯一父元素的元素集合。
parents( [expr] ) 取得一个包含着所有匹配元素的唯一祖先元素的元素集合(不包含根元素)。
prev( [expr] ) 取得一个包含匹配的元素集合中每一个元素紧邻的前一个同辈元素的元素集合。
prevAll( [expr] ) 取得一个包含匹配的元素集合中每一个元素的之前所有同辈元素的元素集合。
siblings( [expr] ) 取得一个包含匹配的元素集合中每一个元素的所有同辈元素的元素集合。
andSelf( ) 将前一个匹配的元素集合添加到当前的集合中取得所有div元素和其中的p元素,添加border类属性。取得所有div元素中的p元素,
添加background类属性
$("div").find("p").andSelf().addClass("border");
$("div").find("p").addClass("background");
end( ) 结束当前的操作,回到当前操作的前一个操作
找到所有p元素其中的span元素集合,然后返回p元素集合,添加css属性
$("p").find("span").end().css("border", "2px red solid");
JQuery Selectors选择器方法说明
基本选择器
$("#myDiv") 匹配唯一的具有此id值的元素
$("div") 匹配指定名称的所有元素
$(".myClass") 匹配具有此class样式值的所有元素
$("*") 匹配所有元素
$("div,span,p.myClass") 联合所有匹配的选择器
层叠选择器
$("form input") 后代选择器,选择ancestor的所有子孙节点
$("#main > *") 子选择器,选择parent的所有子节点
$("label + input") 临选择器,选择所有的label元素的下一个input元素节点,经测试选择器返回的是label标签后面直接跟一个input标签的所有input标签元素
$("#prev ~ div") 同胞选择器,该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签
基本过滤选择器
$("tr:first") 匹配第一个选择的元素
$("tr:last") 匹配最后一个选择的元素
$("input:not(:checked) + span")从原元素集合中过滤掉匹配selector的所有元素(这里有是一个临选择器)
$("tr:even") 匹配集合中偶数位置的所有元素(从0开始)
$("trdd") 匹配集合中奇数位置的所有元素(从0开始)
$("td:eq(2)") 匹配集合中指定位置的元素(从0开始)
$("td:gt(4)") 匹配集合中指定位置之后的所有元素(从0开始)
$("td:gl(4)") 匹配集合中指定位置之前的所有元素(从0开始)
$(":header") 匹配所有标题
$("div:animated") 匹配所有正在运行动画的所有元素
内容过滤选择器
$("div:contains('John')") 匹配含有指定文本的所有元素
$("td:empty") 匹配所有空元素(只含有文本的元素不算空元素)
$("div:has(p)") 从原元素集合中再次匹配所有至少含有一个selector的所有元素
$("td:parent") 匹配所有不为空的元素(含有文本的元素也算)
$("div:hidden") 匹配所有隐藏的元素,也包括表单的隐藏域
$("div:visible") 匹配所有可见的元素
属性过滤选择器
$("div[id]") 匹配所有具有指定属性的元素
$("input[name='newsletter']") 匹配所有具有指定属性值的元素
$("input[name!='newsletter']") 匹配所有不具有指定属性值的元素
$("input[name^='news']") 匹配所有指定属性值以value开头的元素
$("input[name$='letter']") 匹配所有指定属性值以value结尾的元素
$("input[name*='man']") 匹配所有指定属性值含有value字符的元素
$("input[id][name$='man']") 匹配同时符合多个选择器的所有元素
子元素过滤选择器
$("ul li:nth-child(2)"),
$("ul li:nth-child(odd)"), 匹配父元素的第n个子元素
$("ul li:nth-child(3n + 1)")
$("div span:first-child") 匹配父元素的第1个子元素
$("div span:last-child") 匹配父元素的最后1个子元素
$("div buttonnly-child") 匹配父元素的唯一1个子元素
表单元素选择器
$(":input") 匹配所有的表单输入元素,包括所有类型的input, textarea, select 和 button
$(":text") 匹配所有类型为text的input元素
$(":password") 匹配所有类型为password的input元素
$(":radio") 匹配所有类型为radio的input元素
$(":checkbox") 匹配所有类型为checkbox的input元素
$(":submit") 匹配所有类型为submit的input元素
$(":image") 匹配所有类型为image的input元素
$(":reset") 匹配所有类型为reset的input元素
$(":button") 匹配所有类型为button的input元素
$(":file") 匹配所有类型为file的input元素
$(":hidden") 匹配所有类型为hidden的input元素或表单的隐藏域
表单元素过滤选择器
$(":enabled") 匹配所有可操作的表单元素
$(":disabled") 匹配所有不可操作的表单元素
$(":checked") 匹配所有已点选的元素
$("select option:selected") 匹配所有已选择的元素
JQuery CSS 方法说明
css( name ) 访问第一个匹配元素的样式属性。
css( properties ) 把一个"名/值对"对象设置为所有匹配元素的样式属性。
$("p").hover(function () {
$(this).css({ backgroundColor:"yellow", fontWeight:"bolder" });
}, function () {
var cssObj = {
backgroundColor: "#ddd",
fontWeight: "",
color: "rgb(0,40,244)"
}
$(this).css(cssObj);
});
css( name, value ) 在所有匹配的元素中,设置一个样式属性的值。
offset( ) 取得匹配的第一个元素相对于当前可视窗口的位置。返回的对象有2个属性,
top和left,属性值为整数。这个函数只能用于可见元素。
var p = $("p:last");
var offset = p.offset();
p.html( "left: " + offset.left + ", top: " + offset.top );
width( ) 取得当前第一匹配的元素的宽度值,
width( val ) 为每个匹配的元素设置指定的宽度值。
height( ) 取得当前第一匹配的元素的高度值,
height( val ) 为每个匹配的元素设置指定的高度值。
JQuery Utilities 方法说明
jQuery.browser
.msie 表示ie
jQuery.browser.version 读取用户浏览器的版本信息
jQuery.boxModel 检测用户浏览器针对当前页的显示是否基于W3C CSS的盒模型
jQuery.isFunction( obj ) 检测传递的参数是否为function
function stub() { }
var objs = [
function () {},
{ x:15, y:20 },
null,
stub,
"function"
];
jQuery.each(objs, function (i) {
var isFunc = jQuery.isFunction(objs);
$("span:eq( " + i + ")").text(isFunc);
});
jQuery.trim( str ) 清除字符串两端的空格,使用正则表达式来清除给定字符两端的空格
jQuery.each( object, callback ) 一个通用的迭代器,可以用来无缝迭代对象和数组
jQuery.extend( target, object1, [objectN] ) 扩展一个对象,修改原来的对象并返回,这是一个强大的实现继承的工具,这种继承是采用传值的方法来实现的,而不是JavaScript中的原型链方式。
合并settings和options对象,返回修改后的settings对象
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
合并defaults和options对象,defaults对象并没有被修改。options对象中的值代替了defaults对象的值传递给了empty。

代码如下:

var empty = {}
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = $.extend(empty, defaults, options);
jQuery.grep( array, callback, [invert] ) 通过一个筛选函数来去除数组中的项
$.grep( [0,1,2], function(n,i){
return n > 0;
});


jQuery.makeArray( obj ) 将一个类似数组的对象转化为一个真正的数组
将选取的div元素集合转化为一个数组
var arr = jQuery.makeArray(document.getElementsByTagName("div"));
arr.reverse(); // use an Array method on list of dom elements
$(arr).appendTo(document.body);
jQuery.map( array, callback ) 使用某个方法修改一个数组中的项,然后返回一个新的数组
jQuery.inArray( value, array ) 返回value在数组中的位置,如果没有找到,则返回-1
jQuery.unique( array ) 删除数组中的所有重复元素,返回整理后的数组



作者: rain    时间: 2014-11-19 09:18
本帖最后由 rain 于 2015-4-7 18:38 编辑

JQ的链式写法:
  1. $('#div1').html('hello').css('background','red').click(function(){
  2.                 alert(123);
  3.         });
复制代码
原代码:
  1. var oDiv = $('#div1');
  2.         
  3.         oDiv.html('hello');
  4.         
  5.         oDiv.css('background','red');
  6.         
  7.         oDiv.click(function(){
  8.                 alert(123);
  9.         });
复制代码

作者: rain    时间: 2014-11-19 09:32
取值与赋值:
alert( $('li').html() );  //当一组元素的时候,取值是一组中的第一个
       
        $('li').html('hello');  //当一组元素的时候,赋值是一组中的所有

alert($('div').attr('title'));            读取title的值
        $('div').attr('title','456');          给title赋新值
        $('div').attr('class','box');          添加一个class=“box” 元素

作者: rain    时间: 2014-11-19 12:33
本帖最后由 rain 于 2014-11-19 13:48 编辑

filter : 过滤
not : filter的反义词
$('div').filter('.box').css('background','red');    box的变色
$('div').not('.box').css('background','red');    box的不变色,其他的变

has : 包含
$('div').has('span').css('background','red');   带有span的变色
作者: rain    时间: 2014-11-19 14:01
本帖最后由 rain 于 2014-11-19 14:39 编辑

next   下一 个
$('div').next().css('background','red');          div的下一个标签变色
prev  上一个
find 带有
$('div').find('h2').css('background','red');   h2的都变色
eq()  相当于下标
$('div').find('h2').eq(1).css('background','red');   第二个h2变色
index()索引   //索引就是当前元素在所有兄弟节点中的位置
alert( $('#h').index() );
作者: rain    时间: 2014-11-19 15:27
做一个选项卡:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
#div1 div{ width:200px; height:200px; border:1px red solid; display:none;}
.active{ background:red;}
</style>
<script type="text/javascript" src="jquery-1.10.1.min.js"></script>
<script>
/*window.onload = function(){
        var oDiv = document.getElementById('div1');
        var aInput = oDiv.getElementsByTagName('input');
        var aCon = oDiv.getElementsByTagName('div');
       
        for(var i=0;i<aInput.length;i++){
               
                aInput[i].index = i;
               
                aInput[i].onclick = function(){
                       
                        for(var i=0;i<aInput.length;i++){
                                aInput[i].className = '';
                                aCon[i].style.display = 'none';
                        }
                       
                        this.className = 'active';
                        aCon[this.index].style.display = 'block';
                       
                };
        }
       
};*/


$(function(){
       
        $('#div1').find('input').click(function(){
               
                $('#div1').find('input').attr('class','');
                $('#div1').find('div').css('display','none');
               
                $(this).attr('class','active');
               
                $('#div1').find('div').eq( $(this).index() ).css('display','block');
               
        });
       
});
</script>
</head>

<body>
<div id="div1">
        <input class="active" type="button" value="1" />
    <input type="button" value="2" />
    <input type="button" value="3" />
    <div style="display:block">111111</div>
    <div>222222</div>
    <div>333333</div>
</div>
</body>
</html>

作者: rain    时间: 2014-11-19 17:11
jquery中show()、hide()的例子,一个显示一个隐藏,可以让元素灵活地动起来哦。

Jquery的show()方法和hide()方法,在不带任何参数的情况下,相当于css(“display”,”none/block/inline”),可以立即隐藏或显示匹配的元素,不会有任何动画。

如果希望在调用show()方法时,元素慢慢地显示出来,可以为show()方法指定一个速度参数,例如,指定一个速度关键字“slow”。
jQuery代码:
$("element").show("slow");
运行该代码后,元素将在600毫秒内慢慢的显示出来。
其它的速度关键字还有”normal“和”fast“(长度分别是400毫秒和200毫秒)。

不仅如此,还可以为显示速度指定一个数字,单位是毫秒。

例如,使元素在1秒钟(1000毫秒)内显示出来;
$(”element").show(1000);

在前面的例子中,把其中的hide()方法改为hide(600),show()方法改为show(600)。

jQuery代码:


复制代码 代码示例:
$(function () {
    $("#panel h5.head").toggle(function () {
        $(this).next().hide(600);
    }, function () {
$(this).next().show(600);
})
});
hide(600)方法会同时减少“内容”的高度、宽度和不透明度,直至3个属性的值为0,最后设置该元素的CSS规则为“display:none”。

同理,show(600)方法则会从上到下增大“内容”的高度,从左到右增大“内容”的宽度,同时增加“内容”的不透明度,直至新闻内容完全显示。
作者: rain    时间: 2014-11-20 00:01
.addClass()   添加属性
$('div').addClass('box2 box4');
removeClass()    删除属性

width()   宽度
alert( $('div').width() );  //width
alert( $('div').innerWidth() );  //width + padding
alert( $('div').outerWidth() );  //width + padding + border
alert( $('div').outerWidth(true) );  //width + padding + border + margin

$('span').insertBefore( $('div') );      剪切到div的前面
$('div').insertAfter( $('span') );       把div剪切粘贴到span的后面
$('div').appendTo( $('span') );       把div剪切粘贴到span里面靠后位置
$('div').prependTo( $('span') );      把div剪切粘贴到span里面最开始位置
before()   after()  append()   prepend()
意思差不多,//区别 :后续操作变了       
        //$('span').insertBefore( $('div') ).css('background','red');    对span加样式
       
        $('div').before( $('span') ).css('background','red');   div的前面必须是span,对div加样式


作者: rain    时间: 2014-11-20 00:37
本帖最后由 rain 于 2014-11-20 00:40 编辑

$('div').remove();     删除div节点

$('div').click(function(){
                alert(123);
        
$('div').on('click',function(){
                alert(123);                    和上面一样的效果,但是可以针对自定义的事件

$('div').on('click mouseover',function(){
                alert(123);
        });                   可以一个事件写多个操作

$('div').on({
                'click' : function(){
                        alert(123);
                },
                'mouseover' : function(){
                        alert(456);
                }
        });       点击弹出123,鼠标经过弹出456


off()取消操作
$('div').on('click mouseover',function(){
                alert(123);
                $('div').off('mouseover');
        });  取消鼠标移动操作

$(window).scrollTop()           获取滚动距离




作者: rain    时间: 2014-11-20 14:29
弹窗效果
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{ margin:0; padding:0;}
#login{ width:300px; height:300px; border:1px #000 solid; position:absolute;}
#close{ position:absolute; right:0; top:0;}
</style>
<script type="text/javascript" src="jquery-1.10.1.min.js"></script>
<script>

$(function(){
       
        //var oDiv = $('<div>div</div>');
        //$('body').append( oDiv );
       
        $('#input1').click(function(){
               
                var oLogin = $('<div id="login"><p>用户名:<input type="text" /></p><p>密码:<input type="text" /></p><div id="close">X</div></div>');
               
                $('body').append( oLogin );
               
                oLogin.css('left' , ($(window).width() - oLogin.outerWidth())/2 );
                oLogin.css('top' , ($(window).height() - oLogin.outerHeight())/2 );
               
               
                $('#close').click(function(){
                       
                        oLogin.remove();
                       
                });
               
               
                $(window).on('resize scroll',function(){
                       
                        oLogin.css('left' , ($(window).width() - oLogin.outerWidth())/2 );
                oLogin.css('top' , ($(window).height() - oLogin.outerHeight())/2 + $(window).scrollTop() );
                       
                });
               
        });
       
});

</script>
</head>

<body style="height:2000px;">
<input type="button" value="点击" id="input1" />
<!--<div id="login">
        <p>用户名:<input type="text" /></p>
    <p>密码:<input type="text" /></p>
    <div id="close">X</div>
</div>-->
</body>
</html>



作者: rain    时间: 2014-11-20 18:01
当调整浏览器窗口的大小时,发生 resize 事件。
resize() 方法触发 resize 事件,或规定当发生 resize 事件时运行的函数。

当用户滚动指定的元素时,会发生 scroll 事件。
scroll 事件适用于所有可滚动的元素和 window 对象(浏览器窗口)。
scroll() 方法触发 scroll 事件,或规定当发生 scroll 事件时运行的函数。
作者: rain    时间: 2014-11-20 23:04
<script>

$(function(){

        /*$('div').click(function(ev){
               
                //ev : event对象             ev自动处理好浏览器的兼容
               
                //ev.pageX(相对于文档的) : clientX(相对于可视区)
               
                //ev.which : keyCode
               
                ev.preventDefault();  //阻止默认事件
               
                ev.stopPropagation();  //阻止冒泡的操作
               
                return false;   //阻止默认事件 + 阻止冒泡的操作
               
        });*/
        
        $('div').one('click',function(){  //只执行事件一次
                alert(123);
        });
        
});



</script>
作者: rain    时间: 2014-11-20 23:46
本帖最后由 rain 于 2014-11-21 00:00 编辑

//div2.offsetLeft
        
        //alert( $('#div2').offset().left );  //获取到屏幕的左距离
        
        alert( $('#div2').position().left );  //到有定位的父级的left值,把当前元素转化成类似定位的形式

//alert( $('input').val() );   提取值
        //$('input').val(456);        赋值

        //alert( $('li').size() );  //4 像length
       
        $('li').each(function(i,elem){   //一参:下标 二参 : 每个元素
               
                $(elem).html(i);
        
作者: rain    时间: 2014-11-21 13:39
拖拽效果

$(function(){

        var disX = 0;
        var disY = 0;

        $('div').mousedown(function(ev){
               
                disX = ev.pageX - $(this).offset().left;
                disY = ev.pageY - $(this).offset().top;
               
                $(document).mousemove(function(ev){
                       
                        $('div').css('left',ev.pageX - disX);
                        $('div').css('top',ev.pageY - disY);
                       
                });
               
                $(document).mouseup(function(){
                       
                        $(document).off();
                       
                });
               
                return false;
               
        });

});
作者: rain    时间: 2014-11-21 20:47
$(function(){

        $('#div1').hover(function(){                                      定义一个移入效果和一个移出效果
               
                //$(this).css('background','blue');
               
                //$('#div2').hide(3000);                                  隐藏
               
                //$('#div2').fadeOut(1000);  //默认400          变淡
               
                //$('#div2').slideUp();                                    上卷
               
                $('#div2').fadeTo(1000,0.5);                          定义变淡程度
               
        },function(){
               
                //$(this).css('background','red');
               
                //$('#div2').show(3000);
               
                //$('#div2').fadeIn(1000);
               
                //$('#div2').slideDown();
               
                $('#div2').fadeTo(1000,1);
               
        });

});


作者: rain    时间: 2014-11-22 09:36
document.getElementById('div1').innerHTML    原生写法
alert( $('#div1').get(0).innerHTML );        get()把JQ转化为JS,但必须有下标

for(var i=0;i<$('li').length;i++){                  length也是JQ里面的函数
                $('li').get(i).style.background = 'red';
                $('li')[i].style.background = 'red';          效果等同于上一个

outerWidth()              JQ中获取得到隐藏元素的值
offsetWidth :            js是获取不到隐藏元素的值          两者都是width+padding+border

alert( $('div').html() );     得到第一个元素的内容
alert( $('div').text() );  //会获取所有的内容(特例),不含标签
$('div').text('<h3>h3</h3>');         把标签也当成内容赋值
作者: rain    时间: 2014-11-22 14:13
detach() : 跟remove方法一样,只不过会保留删除这个元素的操作行为
$(function(){  //等DOM加载完就可以执行了 , 性能要好
});
window.onload = function(){};    等整个内容都加载完才执行

DOMContentLoaded    原生js中dom加载完就执行,高版本浏览器支持

$(document).ready(function(){}              jq中的完整写法,同$(function){}

作者: rain    时间: 2014-11-24 23:17
本帖最后由 rain 于 2014-11-24 23:25 编辑

parents() : 获取当前元素的所有祖先节点,参数就是筛选功能
closest() : 获取最近的指定的祖先节点(包括当前元素自身),必须要写筛选的参数,只能找到一个元素
siblings() : 找所有的兄弟节点,参数也是筛选功能
nextAll() : 下面所有的兄弟节点,参数也是筛选功能
prevAll() : 上面所有的兄弟节点
Until() : 截止

作者: rain    时间: 2014-11-26 13:44
clone() : 可以接收一个参数 ,作用可以复制之前的操作行为
wrap() : 包装
wrapAll() : 整体包装
wrapInner() : 内部包装
unwrap() : 删除包装 ( 删除父级 : 不包括body )

var elem2 = elem.add('span');            add 增加元素进来

slice()   指定从哪里到哪里选定元素
console.log($('form').serialize());  //string : a=1&b=2&c=3
serializeArray()      数据串联后以数组的形式保存
作者: rain    时间: 2014-11-26 16:01
//animate() :
//第一个参数 : {} 运动的值和属性

//第二个参数 : 时间(运动快慢的)  默认 : 400

//第三个参数 : 运动形式 只有两种运动形式 ( 默认 : swing(慢快慢) linear(匀速) )

//第四个参数 :  回调函数

$(function(){

        $('#div1').click(function(){
               
                $(this).animate({width : 300 , height : 300} , 4000 , 'linear',function(){
                        alert(123);
                });
               
                $('#div2').animate({width : 300 , height : 300} , 4000 , 'swing');

//$('#div1').stop();   //默认 : 只会阻止当前运动
               
                //$('#div1').stop(true); //阻止后续的运动
               
                //$('#div1').stop(true,true); //可以立即停止到指定的目标点
               
                $('#div1').finish();  //立即停止到所有指定的目标点

.delay() 延迟
$(this).animate({width : 300} , 2000).delay(1000).animate({height : 300} , 2000);



作者: rain    时间: 2014-11-26 19:58
本帖最后由 rain 于 2014-11-26 22:36 编辑

delegate()   事件委托
$('li').on('click',function(){
                this.style.background = 'red';
        
$('ul').delegate('li','click',function(){
                this.style.background = 'red';           效果等同于上一个

$('ul').undelegate();      阻止事件委托
$('#div1').trigger('click');  //主动触发*/

$('#div1').on('click',{name:'hello'},function(ev){         插入参数
alert(ev.data.name);                                                参数名称
alert( ev.target );                                           事件源
alert( ev.type );                                            事件类型

作者: rain    时间: 2014-11-27 17:33
本帖最后由 rain 于 2015-4-7 18:41 编辑

$().css()  $().html()  $().val()  : 只能给JQ对象用
$.xxx()  $.yyy()  $.zzz()  : 不仅可以给JQ用,也可以给原生JS用 : 叫做工具方

$(function(){
        
        //var a = null;
        
        //$.type() : 也是判断类型
        
        //alert( typeof a );
        
        //alert( $.type(a) );    和上一行同等效果,判断a的类型为string。只是可以判断出更多的类型。
        
        var str = '   hello  ';
        
        alert('('+$.trim(str)+')');   去掉左右的空格trim
inArray  类似于 indexOf   返回查找的内容的位置,有则返回位置,没有则返回-1
var arr = ['a','b','c','d'];
        alert(  $.inArray('b',arr)  );      inArray()查找b是否在arr中,在则返回位置,不在则返回-1
  1. proxy()  : 改变this指向的
  2. function show(n1,n2){
  3.                 alert(n1);
  4.                 alert(n2);
  5.                 alert(this);
  6.         }

  7.         //show();
  8.         
  9.         //$.proxy(show , document,3)(4);        赋值过去
  10.         
  11.         $(document).click( $.proxy(show,window,3,4)  );           点击才触发
  12. noConflict() : 防止冲突的
  13. parseJSON()   解析js
  14. 例:var str = '{"name":"hello"}';       alert($.parseJSON( str ).name);
复制代码
MakeArray()  把类数组转化成数组
window.onload = function(){
        var aDiv = document.getElementsByTagName('div');  //类数组
        $.makeArray(aDiv).push();

作者: rain    时间: 2014-12-8 10:28
本帖最后由 rain 于 2014-12-8 10:32 编辑

插件
//$.extend : 扩展工具方法下的插件形式  $.xxx() $.yyy()

//$.fn.extend  :  扩展到JQ对象下的插件形式  $().xxx()  $().yyy()

$.extend({
        leftTrim : function(str){
                return str.replace(/^\s+/,'');
        },
        rightTrim : function(){},
        aaa : function(){
                alert(1);
        },
        bbb : function(){}
});

$.fn.extend({
        
        drag : function(){
               
                //this : $('#div1')
               
                var disX = 0;
                var disY = 0;
               
                var This = this;
               
                this.mousedown(function(ev){
                        
                        disX = ev.pageX - $(this).offset().left;
                        disY = ev.pageY - $(this).offset().top;
                        
                        $(document).mousemove(function(ev){
                                
                                This.css('left' , ev.pageX - disX);
                                This.css('top' , ev.pageY - disY);
                                
                        });
                        
                        $(document).mouseup(function(){
                                $(this).off();
                        });
                        
                        return false;
                        
                });
               
        },
        aaa : function(){
                alert(2);
        }
        
});


</script>
<script>


//$.trim()
//$.leftTrim()

/*var str = '  hello  ';

alert( '('+$.leftTrim(str)+')' );*/

$(function(){
        
        $('#div1').drag();
        
});


$.aaa();  // 1
$().aaa();  //2

</script>

<div id="div1"></div>


作者: rain    时间: 2014-12-15 22:17
本帖最后由 rain 于 2014-12-18 09:30 编辑

$('*')  选择所有的元素
$('a')   选择所有的a
$('.link')   选择相同的class标签,如.link
$(':input[type="text"]').val()    选择表单元素
$(':checkbox:checked')   选择所有已勾选的复选框
$('select').val(2013)     指定下拉菜单的项目
$('div:contains("abc")').html()    选择包含特定内容的层
$('a').attr('href','http://xxx.com')   修改元素属性的值
$('span').text()    获取指定元素的内容
$('select','span')    一次性选择多个不同类的元素
$('p').remove(':contains("abc")')   删除包含abc的段落
$('<p><a href="#">link</a></p>').replaceAll('p:contains(''abc")')   替换所选择的元素
$('p').css('color','blue')   把段落的文字颜色改为蓝色
$('p').width()  获取实际元素的宽度,高度用height()
$('document').ready(function(){}) 指定页面加载完成的回调,也可以简写成$(function(){})
$(':button').click(function(){})   为按钮指定onclick事件
$('p').toggle()    自动实现显示、隐藏交替
$('p').slideDown('slow')     自动实现滑出效果,有slow  normal  fast 三个速度参数,也可以提供第二个参数,表示动画时长。
$('p').fadeIn('slow')   淡入效果,淡出为slideOut。

$.extend : 扩展工具方法下的插件形式  $.xxx() $.yyy()
$.fn.extend  :  扩展到JQ对象下的插件形式  $().xxx()  $().yyy()

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
例:eval("x=10;y=20;document.write(x*y)")           结果为:200
作者: rain    时间: 2017-1-6 16:48
本帖最后由 rain 于 2017-1-6 17:10 编辑

阮一峰博客:设计思想

阮一峰博客:最佳实践





欢迎光临 叶子网络bbs论坛 (http://xuanfly.com/) Powered by Discuz! X3.3