JQuery基础知识

1 概念

jquery:js组件
	封装了很多简化js功能方法的组件(封装体)
富互联网技术:
	RIA(Rich Internet Applications)富互联网应用,具有高度互动性、丰富用户体验以及功能强大的客户端。随着JavaScript、CSS、Ajax等技术的进步,越来越多的开发者将丰富多彩的程序及其功能进行封装,供其他人可以调用这些封装好的程序组件(框架)
常见的js组件:
	jquery、dojo、node.js  ext.js

jquery功能

取得页面中的元素 
修改页面的外观
改变页面的内容
响应用户的页面操作
为页面添加动态效果
无刷新获取服务器信息(ajax)
简化javascript任务

jquery优点

轻量级 (Lightweight)
强大的选择器 
出色的DOM操作封装 
可靠的事件处理机制 
出色的浏览器兼容性 

2 初次体验jquery

2.1 在页面中引入jquery文件

<!-- 引入本地jquery文件:1 -->
<script type="text/javascript"  src="/LianXi/js/jquery-1.6.4.min.js"></script>
<!-- 引入网络jquery文件:2 -->
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>

2.2 jquery实现文档加载成功事件

<!-- 文档加载成功:添加点击事件 -->
<script type="text/javascript">
    /*js添加文件加载事件:只能注册一次*/
    window.onload=function(){
        var odiv=document.getElementById("div01");
        odiv.onclick=function(){
            alert(this.innerText+"js添加文件加载事件");
        }
    }

    /*jquery的文档加载事件 可以注册多次*/
    /*jquery文档加载:写法1:$(fn)::fn为文件加载成功要执行的方法*/
    $(function(){
        //alert("jquery文档加载:写法1");
        $("#div01").click(function(){
            alert(this.innerText+"等同于"+$("#div01").text());
        });
    });
    
    /*jquery文档加载:写法2:$().ready(fn)::fn为文件加载成功要执行的方法*/
    $().ready(function(){
        alert("jquery文档加载:写法2");
    });
    
    /*jquery文档加载:写法3:$(document).ready(fn)::fn为文件加载成功要执行的方法*/
    $(document).ready(function(){
        alert("jquery文档加载:写法3");
    });
</script>

2.3 jquery实现隔行变色

*** 通过css实现隔行变色 ***
<table id="table_1">
    <tr style="background-color:#aaaaaa;">
        <th>学号</th><th>性名</th><th>年龄</th><th>性别</th>
    </tr>
    <tr class="class1">
        <td>1001</td><td>韩雪</td><td>18</td><td>女</td>
    </tr>
    <tr class="class2">
        <td>1002</td><td>韩庚</td><td>28</td><td>男</td>
    </tr>
    <tr class="class1">
        <td>1003</td><td>韩信</td><td>38</td><td>女</td>
    </tr>
    <tr class="class2">
        <td>1004</td><td>韩非</td><td>48</td><td>男</td>
    </tr>
</table>
.cla1{
background-color: #aa33cc;
}
.cla2{
background-color: #ccaa66;
}


通过js实现隔行变色</h3>
<table id="table_2">
    <tr>
        <th>学号</th><th>性名</th><th>年龄</th><th>性别</th>
    </tr>
    <tr>
        <td>1001</td><td>韩梅梅</td><td>18</td><td>女</td>
    </tr>
    <tr>
        <td>1002</td><td>韩庚</td><td>28</td><td>男</td>
    </tr>
    <tr>
        <td>1003</td><td>韩信</td><td>38</td><td>女</td>
    </tr>
    <tr>
        <td>1004</td><td>韩非子</td><td>48</td><td>男</td>
    </tr>
</table>
<script type="text/javascript">
    window.onload=function(){
        var oTable=document.getElementById("table_2");
        var oTr=oTable.getElementsByTagName("tr");
        oTr[0].style.backgroundColor="#aaaaaa";
        for(var i=1;i<oTr.length;i++){
            if(i%2==0){
                oTr[i].style.backgroundColor="#ccaa66";
            }else{
                oTr[i].style.backgroundColor="#aa33cc";
            }
        }
    }
</script>


*** 通过jquery实现隔行变色 ***
<table id="table_3">
    <tr>
        <th>学号</th><th>性名</th><th>年龄</th><th>性别</th>
    </tr>
    <tr>
        <td>1001</td><td>韩梅梅</td><td>18</td><td>女</td>
    </tr>
    <tr>
        <td>1002</td><td>韩庚</td><td>28</td><td>男</td>
    </tr>
    <tr>
        <td>1003</td><td>韩信</td><td>38</td><td>女</td>
    </tr>
    <tr>
        <td>1004</td><td>韩非子</td><td>48</td><td>男</td>
    </tr>
</table>
<script type="text/javascript">
    $(function(){
        $("#table_3 tr:even").css("background-color","#ccaa66");//偶数行
        $("#table_3 tr:odd").css("background-color","#aa33cc");//奇数行
        $("#table_3 tr:first").css("background-color","#aaaaaa");//第一行
    });
	</script>
</script>

2.4 jquery中特殊字符$的介绍

*** jquery中$完全等价于jQuery ***
<script type="text/javascript">
    $(function(){
        alert("$");
    });
    jQuery(function(){
        alert("jQuery");
    });
</script>

*** jquery中$的作用1:获取元素 ***
<script type="text/javascript">
    $(function(){
        alert($("#div01").text());  
    });
</script>

*** jquery中$的作用2:创建元素 ***
<script type="text/javascript">
    $(function(){
        //给div01中添加一个button
        var $Button=$("<input type='button' value='我是按钮'/>");//$(html代码)
        $("#div01").append($Button);
    });
</script>

*** jquery中$的作用3:作为功能函数的前缀 ***
<script type="text/javascript">
    *** 相当于for循环,i是下标,n是当前下标下的div ***
    $(function(){
        $.each($("div"),function(i,n){  //调用全局方法:$.方法名(xxx)
            alert(i+"::::"+n.innerText);
        });
    });
</script>

*** jquery中$的作用4:$(document).ready()的简化写法 ***
<script type="text/javascript">
    $(function(){
        alert(11);   //$(fn)
    });
</script>

3 dom对象和jquery对象

*** dom对象和jquery对象的区别 ***
<!-- 
dom对象:通过js文件获取的对象:
dom:把文档和文档中所有的元素封装为对象  这些有关系的对象写成dom树
jquery对象:通过$(选择器)获取的对象
-->
<script type="text/javascript">
    $(function(){
        var oH3=document.getElementById("h3id");
        alert("dom对象:"+oH3);  //dom对象:[object HTMLHeadingElement]
        //dom对象使用的是DHTML的API
        
        var $H3=$("#h3id");
        alert("jquery对象:"+$H3);//jquery对象:[object Object]
        // jquery对象使用的jquery的API
        //重点: jquery中所有的元素都是集合

*** jquery对象和dom对象之间的转换 ***
    	alert("把dom对象转化为jquery对象:$(dom对象)"+$(oH3));
        alert("把jquery对象转换为dom对象:jquery对象.get(index)"+$H3.get(0));
        alert("把jquery对象转换为dom对象:jquery对象[index]"+$H3[0]);
    });
</script>

4 选择器

1:基本选择器

  • 通配符选择器:$("*")     获取所有元素
    
  • 标签选择器:$("标签名")     获取指定标签名的所有元素
    
  • 类选择器:$(".class值")     获取指定class值的所有元素
    
  • id选择器:$("#id值")     获取指定id值的一个元素
    
  • 组合选择器:$("选择器1,选择器2,选择器3")     获取与指定的三种选择器匹配的任意一个元素
    
*** jquery选择器:1 基本选择器 ***

<!-- id选择器 -->
<input type="button" value="改变id为one的元素" id="btn1"/> 
<script type="text/javascript">
    $(function(){
        //事件:jquery中o.xxx(fn)对应的是js中o.onXxx=fn
        $("#btn1").click(function(){
            //设置多个样式
            $("#one").css({"background-color":"red","font-size":"28px","color":"blue"});
        });
    });
</script> 

<!-- 类选择器 -->
<input type="button" value="改变所有类为bgRed的元素" id="btn2"/>
<script type="text/javascript">
    $(function(){
        $("#btn2").click(function(){
            $(".bgRed").css({"background-color":"red","color":"blue"});
        });
    });
</script> 

<!-- 标签选择器 -->
<input type="button" value="改变元素名为 <div> 的元素" id="btn3"/>
<script type="text/javascript">
    $(function(){
        $("#btn3").click(function(){
            $("div").css({"background-color":"red","color":"blue"});
        });
    });
</script> 

<!-- 通配符选择器 -->
<input type="button" value="改变所有元素" id="btn4"/>
<script type="text/javascript">
    $(function(){
        $("#btn4").click(function(){
            $("*").css({"background-color":"red","color":"blue"});
        });
    });
</script> 

<!-- 组合选择器选择器 -->
<input type="button" value="改变所有span元素和id为two的元素" id="btn5"/>
<script type="text/javascript">
    $(function(){
        $("#btn5").click(function(){
            $("span,#two").css({"background-color":"red","color":"blue"});
        });
    });
</script> 

2:层级选择器

  • fuSelector ziSelector: 获取指定父选择器fuSelector下 符合选择器ziSelector的所有后代元素
    
  • fuSelector > ziSelector: 获取指定父选择器fuSelector下 符合选择器ziSelector的所有直接子元素
    
  • selector + nextsSelector: 获取选择器selector后紧挨的符合选择器nextsSelector的弟元素
    
  • selector ~ nextsSelector: 获取选择器selector的符合选择器nextsSelector的所有弟元素
    
<!-- 获取指定父选择器下 符合选择器的所有后代元素 -->
<input type="button" value="改变<body>内所有<div>元素" id="btn1"/>  
<script type="text/javascript">
    $(function(){
        $("#btn1").click(function(){
            $("body div").css("background-color","red");
        });
    });
</script>

<!-- 获取指定父选择器下 符合选择器的所有直接子元素 -->
<input type="button" value="改变<body>内子<div>元素" id="btn2"/>
<script type="text/javascript">
    $(function(){
        $("#btn2").click(function(){
            $("body > div").css("background-color","red");
        });
    });
</script>

<!-- 匹配所有跟在 label 后面的 input 元素 -->
<input type="button" value="改变id为one的下一个紧挨的<div>元素" id="btn3"/>
<script type="text/javascript">
    $(function(){
        $("#btn3").click(function(){
            $("#one + div").css("background-color","red");
        });
    });
</script>

<!-- 找到所有与表单同辈的 input 元素 -->
<input type="button" value="改变id为two的元素后面的所有span元素" id="btn4"/>
<script type="text/javascript">
    $(function(){
        $("#btn4").click(function(){
            $("#two ~ span").css("background-color","red");
        });
    });
</script>

3:基本过滤选择器

  • :first 第一个
    
  • :last 最后一个
    
  • :even 索引为偶数的:索引从0开始
    
  • :odd 索引为奇数的:索引从0开始
    
  • :eq(n) 索引为n的:索引从0开始
    
  • :lt(n) 索引小于n的:索引从0开始
    
  • :gt(n) 索引大于n的:索引从0开始
    
  • :not(selector) 与参数选择器不匹配的
    
  • :header 所有的标题
    
  • :animated 所有动画效果的元素
    
<!-- eq(n) 索引为n的:索引从0开始 -->
<input type="button" value="改变第一个<div>元素" id="btn1"/> 
<script type="text/javascript">
    $(function(){
        $("#btn1").click(function(){
            $("div:eq(0)").css("background-color","red");
        });
    });
</script> 

<!-- not(selector) 与参数选择器不匹配的 -->
<input type="button" value="改变class不为one的所有div元素" id="btn2"/>
<script type="text/javascript">
    $(function(){
        $("#btn2").click(function(){
            $("div:not('.one')").css("background-color","red");
        });
    });
</script> 

<!-- even 索引为偶数的:索引从0开始 -->
<input type="button" value="改变索引值为偶数的div元素" id="btn3"/>
<script type="text/javascript">
    $(function(){
        $("#btn3").click(function(){
            $("div:even").css("background-color","red");
        });
    });
</script> 

<!-- gt(n) 索引大于n的:索引从0开始 odd 索引为奇数的:索引从0开始 -->
<input type="button" value="改变索引值为大于 3 且为奇数的 div元素" id="btn4"/>
<script type="text/javascript">
    $(function(){
        $("#btn4").click(function(){
            $("div:gt(3):odd").css("background-color","red");
            //0 1 2  3  4 5 6 7 8 9
            //4 5 6 7 8 9---0 1 2 3 4 5
        });
    });
</script>

<!-- animated 所有动画效果的元素 -->
<input type="button" value="改变当前正在执行动画的所有元素" id="btn5"/>
<script type="text/javascript">
    $(function(){
        $("#btn5").click(function(){
            $(":animated").css("background-color","red");
        });
    });
</script>

4:内容过滤选择器

内容过滤选择器:根据标签的文本内容和子元素来过滤
  • :contains('str')   :文本内容包含str的
    
  • :empty             :不包含子元素和文本内容的
    
  • :has(selector)     :子元素包含参数选择器选中的  :儿子没有当过兵的父亲 站出来
    
  • :parent            : 有子元素或者文本内容的 标签
    

<!-- :contains('str'):文本内容包含str的 -->
<input type="button" value="改变含有文本‘div’的div元素" id="btn1"/> 
<script type="text/javascript">
    $(function(){
        $("#btn1").click(function(){
            $("div:contains('div')").css("background-color","red");
        });
    });
</script> 

<!-- :empty:不包含子元素和文本内容的 -->
<input type="button" value="改变不包含子元素(或者文本元素)的div元素" id="btn2"/>
<script type="text/javascript">
    $(function(){
        $("#btn2").click(function(){
            $("div:empty").css("background-color","red");
        });
    });
</script>

<!-- :has(selector):子元素包含参数选择器选中的 :儿子没有当过兵的父亲 站出来 -->
<input type="button" value="改变含有 class 为 bgRed元素的div元素" id="btn3"/>
<script type="text/javascript">
    $(function(){
        $("#btn3").click(function(){
            $("div:has(.bgRed)").css("background-color","red");
        });
    });
</script>

<!-- :parent:有子元素或者文本内容的 标签 -->
<input type="button" value="改变含有子元素(或者文本元素)的div元素" id="btn4"/>
<script type="text/javascript">
    $(function(){
        $("#btn4").click(function(){
            $("div:parent").css("background-color","red");
        });
    });
</script>

5:可见性过滤选择器

对元素的可见性 进行过滤
不可见的元素:type=hidden 或者 style.display=none
  • :hidden  选中的是不可见的元素:input type="hidden"  或者style.display=none
    
  • :visiable 选中的是可见的元素
    

<!-- :hidden  选中的是不可见的元素:input type="hidden"  或者style.display=none -->
<input type="button" value="获取所有隐藏的input的值" id="btn1"/> 
<script type="text/javascript">
    $(function(){
        $("#btn1").click(function(){
            var val=$("input:hidden").val();//$("input:hidden")获取的集合:val()只获取第一个
            $.each($("input:hidden"),function(i,n){
                $("#new_div").text($('#new_div').text()+$(n).val());
            });
        });
    });
</script> 

<!-- :hidden 选中的是不可见的元素 -->
<input type="button" value="把隐藏的div显示 并更改样式" id="btn2"/> 
<script type="text/javascript">
    $(function(){
        $("#btn2").click(function(){
            var collDiv=$("div:hidden");
            collDiv.css("display","block");//显示元素
            collDiv.show();//显示元素
            collDiv.css("background-color","red");//设置样式
        });
    });
</script> 

6:属性过滤选择器

  • [atrName]  选中含有属性atrName的元素
    
  • [atrName=atrValue]  选中含有属性atrName 并且属性值为atrValue的元素
    
  • [atrName!=atrValue]  选中不含有属性atrName 或者含有属性atrName 但属性值不为atrValue的元素
    
  • [atrName ^= atrValue]  选中含有属性atrName 并且属性值以atrValue开头的元素
    
  • [atrName $= atrValue]  选中含有属性atrName 并且属性值以atrValue结尾的元素
    
  • [atrName *= atrValue]  选中含有属性atrName 并且属性值包含atrValue的元素
    
  • [][][] 多个属性过滤器组合
    

7:子元素过滤选择器

  • :nth-child(statement)  选中符合式子的子元素:
    :nth-child(3n-1)  索引为3n-1的子元素:注意 索引从1开始
    
  • :first-child 第一个子元素
    
  • :last-child 最后一个子元素
    
  • :only-child 唯一的子元素
    
<!-- :nth-child(statement)  选中符合式子的子元素: -->
<input type="button" value="选取每个class为one的div父元素下的第2个子元素." id="btn1"/>
<script type="text/javascript">
    $(function(){
        $("#btn1").click(function(){
            $("div[class='one'] :nth-child(2)").css("background-color","red");//选中的是多个
            $("div[class='one'] *:eq(1)").css("background-color","red");//选中的是一个
        });
    });
</script>

<!-- :first-child 第一个子元素 -->
<input type="button" value="选取每个class为one的div父元素下的第一个子元素." id="btn2"/>
<script type="text/javascript">
    $(function(){
        $("#btn2").click(function(){
            $("div[class='one'] :first-child").css("background-color","red");
        });
    });
</script>

<!-- :last-child 最后一个子元素 -->
<input type="button" value="选取每个class为one的div父元素下的最后一个子元素." id="btn3"/>
<script type="text/javascript">
    $(function(){
        $("#btn3").click(function(){
            $("div[class='one'] :last-child").css("background-color","red");
        });
    });
</script>

<!-- :only-child 唯一的子元素 -->
<input type="button" value="如果class为one的div父元素下的仅仅只有一个子元素,那么选中这个子元素." id="btn4"/>
<script type="text/javascript">
    $(function(){
        $("#btn4").click(function(){
            $("div[class='one'] :only-child").css("background-color","red");
        });
    });
</script>

8:表单过滤选择器

根据表单组件的类型进行过滤
  • :input
    
  • :file
    
  • :text
    
  • :password
    
  • :radio
    
  • :checkbox
    
  • :submit
    
  • :image
    
  • :hidden
    
  • :button
    

9:表单属性过滤选择器

  • :enabled  可用的表单组件
    
  • :disabled 不可用的表单组件
    
  • :selected 被选中的option
    
  • :checked 被选中的radio、checkbox
    
<!-- :enabled  可用的表单组件   :disabled 不可用的表单组件 -->
<input  type="button" value="测试::enabled和:disabled" onclick="test1()"/>
<div id="div_1"></div>
<script type="text/javascript">
    function test1(){
        //*** 把可用和不可用的text的value写入div_1中 ***
        //把可用的text的value写入div1中
        var $coll1=$("input[type='text']:enabled");
        $.each($coll1,function(i,n){//n是dom对象
            $("#div_1").html($("#div_1").html()+"<br/>"+$(n).val());
        });
        //把不可用的text的value写入div1中
        $.each($("input[type='text']:disabled"),function(i,n){//n是dom对象
            $("#div_1").html($("#div_1").html()+"<br/>"+$(n).val());
        });

    }
</script>

<!-- :checked 被选中的radio、checkbox   :selected 被选中的option -->
<input  type="button" value="测试::selected和:checked" onclick="test2()"/>
<div id="div_2"></div>
<script type="text/javascript">
    function test2(){
        $("#div_2").html("");
        //把课程和爱好写入div_2中
        //获取被选中的课程
        var $collSubject=$("select[name='subject'] option:checked");
        //获取课程的文本内容
        $.each($collSubject,function(i,n){
            $("#div_2").html($("#div_2").html()+"<br/>课程("+(i+1)+"):"+$(n).text());
        });
        //获取被选中的爱好
        var $collEnjoy=$("input:checkbox[name='enjoy']:checked");
        //获取课程的value值
        $.each($collEnjoy,function(i,n){
            $("#div_2").html($("#div_2").html()+"<br/>爱好("+(i+1)+"):"+$(n).val());
        });
    }
</script>

5 jquery中的方法

属性操作

//获取div1的title属性值:attr(attrName):获取属性的值
alert($("#div1").attr("title"));
alert($("#div1").attr("class"));

//attr(attrName,attrValue):设置属性的值
//设置div1的class属性值为cla2:  
$("#div1").attr("class","cla2");

//attr({attrName:attrValue,attrName:attrValue}):设置多个属性的值
$("#div1").attr({"class":"cla2","style":"font-size:30px;"});

//删除属性: removeAttr(attrName)
$("#div1").removeAttr("style");

css样式操作

//css(cssAttrName):获取css属性的值
//css(cssAttrName,cssAttrValue):设置css属性的值
//css({cssAttrName:cssAttrValue,cssAttrName:cssAttrValue}):设置多个css属性的值
//alert($("#div1").css("border")+"::"+$("#div1").css("font-size"));
//注意:css方法只能获取style属性样式的值  不能获取通过选择器添加的属性样式

class属性操作

//addClass(className) :添加class
//removeClass(className) :移除class
$("#div1").addClass("cla2");
alert($("#div1").attr("class"));//cla1 cla

值、文本、html操作

//val() :获取组件的value属性值
//val(value) :设置组件的value属性值
//text(): 获取标签的文本内容
//text(textValue): 设置标签的文本内容
//html() :获取标签内的html代码
//html(htmlValue) :设置标签内的html代码

过滤相关的方法

//eq(index)  :获取下标为index的元素
//is(selector) : 判断当前元素是不是符合参数选择器
//filter(selector) :获取符合参数选择器的元素
//not(selector)  :获取不符合参数选择器的元素
//has(selector)  :获取包含指定后代元素的父元素
//设置div2中索引为2的span子标签的文本
$("#div2 span").eq(1).text("呵呵呵");

//设置div2中title属性值含有2的span子标签的文本
$("#div2 span").filter("[title*='2']").text("22222");
alert( $("#div2 span").is("[title*='2']"));

//设置拥有span子标签的div标签
$("div").has("span").css("padding","50px");

查找

//children([selector]):选中符合参数选择器的所有子元素
//find([selector]):选中符合参数选择器的所有后代元素
//parent([selector]):选中符合参数选择器的父元素
//parents([selector]):选中符合参数选择器的祖先元素

//更改div下的span子元素的样式
$("div").children("span").css("background-color","blue");

//更改div下的span后代元素的样式
$("div").find("span").css("background-color","blue");

crud

//1 添加:
//append(html),append(node):添加到当前元素内部的后面
//prepend(html),prepend(node):添加到当前元素内部的前面
//after(html),after(node):添加到当前元素外部的后面
//before(html),before(node):添加到当前元素尾部的前面
$("#ul1").append($("<li>appendli</li>"));
$("#ul1").prepend($("<li>prependli</li>"));
$("#ul1").after($("<li>afterli</li>"));
$("#ul1").before($("<li>beforeli</li>"));

//2 包裹
//wrap(html),wrap(node)
$("#div1").wrap($("<p></p>"));//使用p标签来包裹#div1
<p><div></div></P>

//3 替换
//replaceWith(html)
//replaceAll(selector)
$("div").replaceWith("<p></p>");//使用p标签替换所有的div标签
$("<p></p>").replaceAll("div");//使用p标签替换所有的div标签

//4 删除
//empty() 清空内部的html代码
//remove(selector) 删除
$("div").empty();// $("div").html("");
//删除只有一个资源的div
$("div :only-child").parent().remove();

6 jquery事件

js中dom对象的事件是:nodes.onxxxx=fn;
jquery中对象的事件是:node.xxx(fn);
  • 文档加载:jquery的document对象的ready
$(document).ready(fn);
$().ready(fn);
$(fn);
  • 普通事件
click(fn); 点击
blur(fn); 失去输入焦点
foucs(fn); 获取输入焦点
chnage(fn); 值更改
resize(fn); 大小更改
mouseover(fn); 鼠标移入
mouseout(fn); 鼠标移出
load(fn); 文档加载
submit(fn); 表单提交
  • 绑定和解除绑定:bind/unbind
//*** 添加事件:bind(type,fn); ***
//给div1添加点击事件::通过js实现
document.getElementById("div1").onclick=function(){
    alert("点我干啥1::js添加事件!");
} 
//给div1添加点击事件::通过jquery实现1::xxx方法
$("#div1").click(function(){
    alert("点我干啥2::juery添加事件!");
});
//给div1添加点击事件::通过jquery实现2:::bind(type,fn)
$("#div1").bind("click",function(){
    alert("点我干啥3::juery添加事件!");
});
$("#div1").bind("click",fn4);

//*** 解除绑定:unbind(type,[fn]) ***
$("#div1").unbind("click");//解除jquery对div1添加的所有click事件
$("#div1").unbind("click",fn4);//解除jquery对div1添加的click事件的fn4函数
  • 鼠标移入移除:hover
//给div2添加移入和移除事件:通过mouseover和mouseout事件实现
$("#div2").mouseover(function(){
    $("#div2").css("background-color","#aa3399");
});
$("#div2").mouseout(function(){
    $("#div2").css("background-color","#99aa33");
});
//给div2添加移入和移除事件:通过mouse方法实现
//hover(fn1,fn2):fn1是鼠标移入执行 fn2是鼠标移出执行
$("#div2").hover(
    function(){
        $("#div2").css("background-color","#aa3399");
    },
    function(){
        $("#div2").css("background-color","#99aa33");
    }
);
  • 点击依次调用:toggle
//每次点击实行的函数不同:toggle(fn1,fn2,fn3...)
$("#div3").toggle(
    function(){
        alert("111111");
    },
    function(){
        alert("111222");
    },
    function(){
        alert("111333");
    }
);

7 jquery动画

1 更改对角线

function text01(){
    //***show和hide://以对角线隐藏和显示
    //***hide([speed],fn)  :以speed速度隐藏后 执行回调函数fn
    //***show([speed],fn)  :以speed速度显示后 执行回调函数fn
    //$("#div1").hide();//隐藏
    //$("#div1").hide(3000);//在3秒内隐藏
    //$("#div1").hide(3000,function(){alert("我闪!");});//隐藏后执行回调函数

    //使用方法的递归: 实现隐藏显示切换
    //div1Change1();

    //div1 隐藏/显示
    //toggle([speend],fn); 以speed速度 如果当前元素隐藏就显示 如果当前元素显示就隐藏 然后执行回调函数fn
    //$("#div1").toggle(3000,function(){alert("div1 隐藏/显示");});

    //div1隐藏显示切换
    div1Change2();
}
function  div1Change1(){
    if($("#div1").is(":hidden")){
        $("#div1").show(3000,div1Change);
    }else{
        $("#div1").hide(3000,div1Change);
    }
}
function  div1Change2(){
    $("#div1").toggle(3000,div1Change2);
}

2 更改高度

function text02(){
    //slideUp(speed,fn):更改高度隐藏 --卷起
    $("#div2").slideUp("slow");

    //slideDown(speed,fn):更改高度显示
    $("#div2").slideDown("slow",function(){alert("我显示!");});

    //slideTogge(speed,fn) :通过更改高度  在隐藏和显示之间切换
    div1Change3();
}
function div1Change3(){
    $("#div2").slideToggle(3000,div1Change3);
}

3 更改透明度

function text03(){
    //fadeIn(speed,[fn]):更改透明度:淡入::显示
    //fadeOut(speed,[fn]):更改透明度:淡出::隐藏
    //$("#div3").fadeOut(3000);//隐藏
    //$("#div3").fadeIn(3000);//显示

    //fadeTo(speed,opacity,[fn]);
    //$("#div3").fadeTo(3000,0.25);
    //$("#div3").fadeTo(3000,1);

    div1Change41();

}
function div1Change41(){
    $("#div3").fadeTo(3000,0.25,div1Change42);
}
function div1Change42(){
    $("#div3").fadeTo(3000,1,div1Change41);
}

4 自定义动画

function text04(){
    //animate();
    //animate(params, [duration], [easing], [callback])
    //参数1params:更改的属性
    //参数2[duration]:速度
    //参数3[easing]:插件类型
    //参数4[callback]:回调函数
    //$("#div4").animate({height:"100px",width:"100px",fontSize:"40px"},4000);

    //$("#div4").animate({left:"200px",top:"200px"},4000);
    div4Change();
}

function div4Change(){
    //随机整数:
    var leftVal=parseInt(Math.random()*100);
    leftVal=Math.random()>0.5?("+"+leftVal):("-"+leftVal);
    var topVal=parseInt(Math.random()*100);
    topVal=Math.random()>0.5?("+"+topVal):("-"+topVal);
    var heightVal=parseInt(Math.random()*100+100);
    var widthVal=parseInt(Math.random()*100+200);
    $("#div4").animate({left:leftVal+"px",top:topVal+"px",width:widthVal+"px",height:heightVal+"px"},3000, div4Change);
}
posted @ 2021-10-21 22:44  RenVei  阅读(47)  评论(0编辑  收藏  举报