jQuery基础第二天(jQuery操作DOM)

动画

1、基本效果(显示和隐藏)

$(“div”).show; //让div显示
$(“div”).hide(); //隐藏div

显示和隐藏.gif
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-1.11.1.min.js"></script>
    <script>
        $(document).ready(function(){
           $("div").css({
               "display":"none",
               "height":"200px",
               "width":"300px",
               "background":"gold"
           });
            $("button").eq(0).click(function(){
               //让div显示出来
               // show()
                //$("div").show();
                //$("div").show(3000);//毫秒为单位
                //$("div").show("slow");
                //$("div").show("fast");
                //$("div").show("normal");

                //第一个 参数是动画时长, 可以是数字或者字符串
                //第二个 参数是动画执行完成后,要执行的函数

                $("div").show(2000,function(){
                   //alert("show动画执行完毕");
                    $("div").hide(1000);
                });
            });
            $("button:last").click(function(){
                //让div隐藏
                $("div").hide();
            });
        });
    </script>
</head>
<body>
    <button>显示</button>
    <button>隐藏</button>
    <div></div>
</body>
</html>

2、滑动效果

$(“div”).slideDown(); //下拉显示
$(“div”).slideUp(); //上拉
$(“div”).slideToggle; //切换

3、淡入淡出(淡定)

$(“div”).fadeIn();
$(“div”).fadeOut();
$(“div”).fadeTo();

4、自定义动画

$(“div”).animate();
$(“div”).stop();

滑动效果.gif

$(“div”).slideDown(); //下拉显示
$(“div”).slideUp(); //上拉
$(“div”).slideToggle; //切换

//两个参数的时候
第一个参数是:动画执行的时长
第二个参数是:动画执行完毕后要执行的函数

//三个参数的时候
第一个参数是:动画执行的时长
第二个参数是:动画效果
第三个参数是:动画执行完毕后要执行的函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="jquery-1.11.1.min.js"></script>
    <script>
        $(document).ready(function(){

            //设置div的默认样式
            $("div").css({
                "display":"none",
               /* "float":"left"*/
                "margin-bottom":"20px",
                "height":"200px",
                "width":"300px",
                "background":"gold"
            });

            $("input[type='button']").click(function(){
                //让div以下拉的方式展示出来
               // $(".divItem").slideDown(3000);
                //两个参数的时候
                //第一个参数是:动画执行的时长
                //第二个参数是:动画执行完毕后要执行的函数
                $(".divItem:first").slideDown(3000,function(){

                });
                //三个参数的时候
                //第一个参数是:动画执行的时长
                //第二个参数是:动画效果
                //第三个参数是:动画执行完毕后要执行的函数
               /* $(".divItem:first").slideDown(2000,"linear",function(){

                });

                //swing 是一个先慢后快 的效果
                $(".divItem:last").slideDown(2000,"swing",function(){

                });*/
            });

            $("button:first").click(function(){
               $(".divItem").slideUp(3000);
            });

            $("button:eq(1)").click(function(){
               $(".divItem").slideToggle();
            });

            //淡入淡出效果

            $("button:eq(2)").click(function(){
                //淡入
                $(".divItem").fadeIn(3000);
            });

            $("button:eq(3)").click(function(){
                //淡出
                $(".divItem").fadeOut(3000);
            });

            $("button:eq(4)").click(function(){
                //淡入淡出切换
                $(".divItem").fadeToggle(2000);
            });

            //设置不透明度:fadeTo
            $("button:eq(5)").click(function(){
                //设置不透明度
                $(".divItem").fadeTo(1000,0.5);
            });

            //自定义动画
            $("button:eq(6)").click(function(){
              $(".divItem").animate({
                  "width":"50px",
                  "height":"60px",
                  "opacity":1
              });
            });
        });
</script>
</head>
<body>
    <!--<button>下拉</button>-->
    <input type="button" value="下拉"/>
    <button>上拉</button>
    <button>上拉下拉切换</button>
    <button>淡入</button>
    <button>淡出</button>
    <button>淡入淡出切换</button>
    <button>设置不透明度</button>
    <button>自定义动画</button>

<div class="divItem"></div>
<div class="divItem"></div>
</body>
</html>

案例:右下角的弹出广告

右下角弹出广告.gif
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .ad {
            position: fixed;
            right: 0;
            bottom: 0;
            width: 230px;
            height: 120px;
            background-image: url(imgs/ad.jpg);
            display: none;
        }
        .ad span {
            position: absolute;
            right: 0;
            top: 0;
            width: 40px;
            height: 18px;
            background-image: url(imgs/h.jpg);
        }
    </style>
    <script src="../jquery-1.11.1.min.js"></script>
    <script>
        $(document).ready(function () {
            $(".ad")
                    .slideDown("normal")
                    .slideUp("slow")
                    .fadeIn(1000)
                    .children("span").click(function () {
                        $(this).parent().fadeOut();
                    });
        });
    </script>
</head>
<body>
    <div class="ad">
        <span></span>
    </div>
</body>
</html>

案例素材获取:链接:http://pan.baidu.com/s/1kVhTHXX 密码:1hhy

操作样式:

$(“div”).css(“background”,”pink”); //设置背景颜色值
$(“div”).addClass(“color-red”); //添加样式

给选定的元素添加样式,注意:样式名字没有 点

$(“div”).removeClass(“color-red”); //移除样式
$(“div”).toggleClass(“color-red”); //切换样式
$("#hasBtn").click(function(){});//判断有没有样式
//hasClass的返回值为true或者false
//有某个样式的时候 就返回true
//没有某个样式的时候 返回false

补充备注:Windows+R出现运行窗口,输入“notepad”,即会弹出记事本

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .divItem{
            background: #000;
            color: #fff;
        }
        .divItem1{
            font-size: 20px;
        }
    </style>
    <script src="../jquery-1.11.1.min.js"></script>
    <script>
        $(document).ready(function(){
            //css
           /* $("li").css("font-size","18px");
            $("li").css({
               "background":"yellow",
                "color":"white"
            });
            var fontsize = $("li").css("font-size");
            console.log(fontsize);*/

            //给所有的li元素添加样式
            //给选定的元素添加类样式,注意:样式名字没有 点
            $("li").addClass("divItem");

            //给指定的元素删除某个样式
            //有参数的时候,移除指定的样式。如果指定的样式该元素不存在,那么将
            //不删除任何样式(类)
            //$("li").eq(2).removeClass("divItem1");

             //没有参数,则整个样式都会被清除
             //$("li").eq(2).removeClass();

             //切换样式
            $("#demo").click(function(){
                $("li").eq(2).toggleClass("divItem1");
            });

            //判断有没有样式
            $("#hasBtn").click(function(){
                //hasClass的返回值为true或者false
                //有某个样式的时候 就返回true
                //没有某个样式的时候 返回false
                var hasDivItem1Class = $("li").eq(2).hasClass("divItem1");
               /* console.log(hasDivItem1Class);*/
                if(hasDivItem1Class){
                    //有某个样式
                    $("li").eq(2).removeClass("divItem1");
                }else{
                    $("li").eq(2).addClass("divItem1");
                }
            });
        });
    </script>
</head>
<body>
<input type="button" value="切换样式" id="demo"/>
<input type="button" value="判断有没有样式" id="hasBtn"/>
<ul>
    <li>元素很多1</li>
    <li>元素很多2</li>
    <li class="divItem1">元素很多3</li>
    <li>元素很多4</li>
    <li>元素很多5</li>
    <li>元素很多6</li>
    <li>元素很多7</li>
    <li>元素很多8</li>
</ul>
</body>
</html>

生成京东的tab栏目切换

生成京东TAB栏目切换.gif
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        body,div,ul,li,ol,dl,dt,p,dd,img,input,a,span,h1,h2,h3,h4{padding:0; margin:0; border:0; list-style:none;}
        .wrapper{width:1000px; height: 475px; margin: 0 auto; margin-top: 100px;}
        .tab{ border:1px solid #ddd; border-bottom: 0; height: 36px; width: 320px;}
        .tab li{ position: relative; float: left; width: 80px; height: 34px; line-height: 34px; text-align: center; cursor: pointer;
            border-top:4px solid #fff;}
        .tab span{ position: absolute;right: 0;top:10px;background: #ddd;width: 1px;height: 14px;overflow: hidden; }
        .products{ width: 1002px;border:1px solid #ddd;height: 476px;}
        .products .main{float: left;display: none;}
        .products .main.selected{display: block;}
        .tab li.active{border-color: red; border-bottom: 0;}
    </style>
    <script type="text/javascript" src="../jquery-1.11.1.min.js"></script>
    <script type="text/javascript">
        $(function(){
            $(".tab > li").mouseenter(function(){
                //给当前元素添加active 这个样式
                //给当前这个元素的所有兄弟元素移除 active 这个样式
                $(this).addClass("active").siblings("li").removeClass("active");

                // 让下面的div内容,根据上面tab栏菜单展示相应内容
                var index = $(this).index();
                $(".main")
                        .eq(index)
                        .addClass("selected")
                        .siblings(".main")
                        .removeClass("selected");
            });
        });
    </script>
</head>
<body>
    <div class="wrapper">
        <ul class="tab">
            <li class="tab-item active">国际大牌<span>◆</span></li>
            <li class="tab-item">国妆名牌<span>◆</span></li>
            <li class="tab-item">清洁用品<span>◆</span></li>
            <li class="tab-item">男士精品</li>
        </ul>
        <div class="products">
            <div class="main selected">
                <a href="###">[站外图片上传中……(1)]</a>
            </div>
            <div class="main">
                <a href="###">[站外图片上传中……(2)]</a>
            </div>
            <div class="main">
                <a href="###">[站外图片上传中……(3)]</a>
            </div>
            <div class="main">
                <a href="###">[站外图片上传中……(4)]</a>
            </div>
        </div>
    </div>
    
</body>
</html>

案例素材获取:
链接:http://pan.baidu.com/s/1eRCpSjC 密码:xasd

常用的DOM操作--属性、值和内容

$(“div”).attr(“name”); //获取name属性值
$(“div”).removeAttr(“name”); //移除属性
$(“input”).val(function(I,v){}); //设置input的值
.html
.text

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
       p{
           background: gray;
           height: 300px;
       }
    </style>
    <script src="../jquery-1.11.1.min.js"></script>
    <script>
        $(function(){
            //设置属性
            $("input:eq(0)").click(function(){
                $(this).attr("title","我是动态设置的属性");
            });

            //获取属性
            $("input:eq(1)").click(function(){
               var attr = $("input:eq(0)").attr("title");
                console.log(attr);
            });

            //移除属性
            $("input:eq(2)").click(function(){
               $("input:eq(0)").removeAttr("title");
            });

            //设置值
            //有一个参数的时候为设置值
            $("input:eq(3)").click(function(){
                $("#txt").val("我是动态设置的值");
            });

            //获取值
            //没有参数的时候为获取值
            $("input:eq(4)").click(function(){
                console.log($("#txt").val());

            });

            //设置html
            $("input:eq(5)").click(function(){
              /*$("div").html("我是div的html的内容")*/
                $("div").html("<p>我是p元素</p>");
        t    });

            //获取html
            $("input:eq(6)").click(function(){
                /*$("div").html("我是div的html内容"); */
               alert($("div").html());
            });

            //设置文本内容
            $("input:eq(7)").click(function(){
                $("div").text("我是动态创建的文本内容");
            });

            //获取文本内容
            $("input:eq(8)").click(function(){
                alert($("div").text());
            });

        });
    </script>
</head>
<body>
<input type="button" value="设置属性"/>
<input type="button" value="获取属性"/>
<input type="button" value="移除属性"/>
<input type="button" value="设置值"/>
<input type="button" value="获取值"/>
<input type="button" value="设置html内容"/>
<input type="button" value="获取html内容"/>
<input type="button" value="设置text内容"/>
<input type="button" value="获取text内容"/>
<div>
    <input type="text" id="txt"/>
</div>
</body>
</html>

操作文档

1、内部插入节点

$(“div”).append(node); //把div内部的后面追加元素
node.appendTo(“div”) //把node追加到div
$(“div”).prepend(node) //在div内部的前面追加元素
node.prependTo($(“div”)) //把node追加到div内部的前面

2、外部插入节点

$(“div”).after(node) //在div后面添加兄弟节点node
$(“div”).before(node) //在div前面添加兄弟节点node
$(“div”).insertBefore(node) //把div插入到node前面
$(“div”).insertAfter(node) //把div追加到node后面

3、删除节点

$(“div”).remove(); //删除选中的元素,“自杀”
$(“div”).empty(); //清空子元素
$(“div”).html(“”); //清空子元素,推荐使用此方法

4、复制节点

$(“div”).clone(); //复制节点

注意:参数为true的话,那么会之前绑定的事件也复制一份

5、包裹节点

$(“div”).wrap(node); //包裹 单个包裹 --后面包裹前面
$(“div”).wrapAll(node); //包裹 所有包裹在一个node中

6、 替换节点

$(“div”).replaceWith(node); //替换

节点操作源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="../jquery-1.11.1.min.js"></script>
    <script>
        $(function(){
            $("button:first").click(function(){
              //追加节点
              $("div").append("<p>我是动态创建出来的p元素</p>");
            });

            $("button:eq(1)").click(function(){
                //把前面这个元素追加给后面$("div")元素
                $("<p>我是动态创建出来的</p>").appendTo($("div"));
            });

            $("button:eq(2)").click(function(){
                //给前面这个元素在所有子元素的前面添加一个子元素
                $("div").prepend("<p>我是动态创建出来的p元素</p>");
            });

            $("button:eq(3)").click(function(){
                //把前面这个元素添加给后面$("div")元素的所有子元素的前面
                $("<p>我是p元素 - prependTo进来</p>").prependTo("div");
            });

            $("button:eq(4)").click(function(){
                //往div的后面添加元素,他们是兄弟关系
                $("div").after("<p>我是div后面的p元素</p>");
            });

            $("button:eq(5)").click(function(){
                //往div的前面添加元素,他们是兄弟关系
                $("div").before("<p>我是div前面的p元素</p>");
            });

            $("button:eq(6)").click(function(){
                //把前面的元素 放到 后面div元素的前面,他们是兄弟节点关系
                $("<p>我在哪?</p>").insertBefore("div");
            });

            $("button:eq(7)").click(function(){
                //把前面的元素 放到 后面div元素的后面,他们是兄弟节点关系
                $("<p>我在哪?</p>").insertAfter("div");
            });

            //删除节点元素
            $("button:eq(8)").click(function(){
                //删除,可以“自杀”
               // $("div").remove();
               $(this).remove(); //自杀
            });

            //清空节点元素
            $("button:eq(9)").click(function(){
                    //清空子元素
                    //$("div").empty();
                $("div").html("");  //推荐使用此方法最为高效!
             });

            //复制
            $("button:eq(10)").click(function(){
                $("div").append($("p").clone());
            });

            //包裹元素
            $("button:eq(11)").click(function(){
                $("span").wrap($(".divItem"));
            });

            //包裹所有节点
            $("button:eq(12)").click(function(){
               $("li").wrapAll($(".divItem"));
            });

            //替换节点
            $("button:eq(13)").click(function(){
                $("span").replaceWith($("<div>我是大div</div>"));
            });

        });

    </script>
</head>
<body>
   <button>append 追加节点 </button>
   <button>appendTo 追加节点 </button>
   <button>prepend 在内部的前面添加节点 </button>
   <button>prependTo 在内部的前面添加节点 </button>
   <button>after 往后面添加节点 </button>
   <button>before 往前面添加节点 </button>
   <button>insertBefore 往前面添加节点 </button>
   <button>insertAfter 往后面添加节点 </button>
   <br/>
   <button>remove 删除节点</button>
   <button>empty 删除节点</button>
   <button>clone 复制节点</button>
   <button>wrap 包裹节点</button>
   <button>wrapAll 包裹所有节点</button>
   <button>replaceWith 替换节点</button>
<div>
    <h1>我是标题H1
        <span>我是span元素</span>
    </h1>
</div>
<p>我是div外面的p元素,不是动态添加的</p>
<div class="divItem">我是一个大div</div>
<span>我是一个小span</span>
   <ul>
       <li>我是li</li>
       <li>我是li</li>
       <li>我是li</li>
       <li>我是li</li>
       <li>我是li</li>
   </ul>
</body>
</html>

案例: 360图片导航效果

360导航效果.gif

案例素材及源码获取:链接:http://pan.baidu.com/s/1dFHrVxR 密码:x6xs

今日重点:

动画:
show、hide、fadeIn、fadeOut、fadeTo、slideDown、slideUp、slideToggle、animate

DOM操作:
.css()、addClass(“className”)、removeClass()、toggleClass、.attr()、removeAttr()、.val()、.html(“<p></p>”)、text()、 node.append(“p我是追加的内容p”)、prePend()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容