jQuery学习记录二

索引选择器

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <script src="jquery-1.12.1.js"></script>
  <script>
    //页面加载
    $(function () {
      $("#btn").click(function () {
        //所有的li中索引为2的li
        $("ul>li:eq(2)").css("backgroundColor","green");
        //所有的li中索引小于5的li
        $("ul>li:lt(5)").css("backgroundColor","deeppink");
        //所有的li中索引大于5的li
        $("ul>li:gt(5)").css("backgroundColor","hotpink");
        //所有li中大于三小于五,也就是四
         $("ul>li:lt(5):gt(3)").css("backgroundColor","blue");
      });
    });
  </script>
</head>
<body>
<input type="button" value="显示效果" id="btn"/>
<ul>
  <li>任贤齐</li>
  <li>张震岳</li>
  <li>罗大佑</li>
  <li>刘德华</li>
  <li>郭富城</li>
  <li>张学友</li>
  <li>黎明</li>
  <li>周星驰</li>
  <li>吴孟达</li>
  <li>周润发</li>
</ul>
</body>
</html>

案例:好友面板切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
    <style>
        #ul li{
            margin-bottom: 10px;
            background-color: orange;
            font-size: 20px;
            font-weight: bolder;
            cursor: pointer;
        }
        #ul li ul{
            list-style: none;
            margin: 0;
            padding: 0;
        }
        #ul li ul li{
            background-color: pink;
        }
    </style>
    <script src="jquery-1.12.1.js"></script>
    <script>
        $(function () {
            $('#ul>li>ul').hide();
            $('#ul>li').mouseenter(function () {
                $(this).children('ul').show(500);
                /*找到兄弟节点中为 li 的节点的,将其他 ul 隐藏*/
                $(this).siblings('li').find('ul').hide(500);
            });
        });
    </script>
</head>
<body>
<div style="width: 200px;height: 500px;border: 1px solid red;">
    <ul id="ul" style="list-style: none;margin: 0;padding: 0;text-align: center">
        <li>
            幼儿园同学
            <ul>
                <li>tom</li>
                <li>rose</li>
                <li>jack</li>
            </ul>
        </li>
        <li>
            小学同学
            <ul>
                <li>tomm</li>
                <li>rosee</li>
                <li>jackk</li>
            </ul>
        </li>
        <li>
            中学同学
            <ul>
                <li>tommm</li>
                <li>roseee</li>
                <li>jackkk</li>
            </ul>
        </li>
    </ul>
</div>

</body>
</html>

元素样式设置的三种方式

        *第一种写法:
//        $("#dv").css("width","300px");
//        $("#dv").css("height","200px");

        *第二种写法:链式编程
        //$("#dv").css("width","300px").css("height","200px")

        *第三种写法:键值对的写法
        var json={"width":"200px","height":"100px","backgroundColor":"pink","border":"2px solid green"};
        $("#dv").css(json);

链式编程:对象不停的调用方法. ↑ 第二种写法就是链式编程的案例。

    *调用方式:对象.方法().方法.方法().方法();

      //对象调用方法,如果返回值还是当前这个对象,那么就可以继续的调用方法
      //经验:在jQuery中,一般情况,对象调用的方法,这个方法的意思是设置的意思,那么返回来的几乎都是当前的对象,就可以继续的链式编程了

元素样式的设置

    *总结:设置元素的样式可以使用css()方法,也可以使用addClass()或者是removeClass()方法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    .cls{
      width: 200px;
      height: 100px;
      background-color: crimson;
    }
    .cls2{
      border: 2px solid green;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>
    $(function () {
      $("#btn").click(function () {
        //为div设置类样式,同时应用多个类样式
        //$("#dv").addClass("cls");
        //$("#dv").addClass("cls").addClass("cls2");
        //$("#dv").addClass("cls cls2");
        //console.log($("#dv").addClass("cls"));
        //addClass()方法,括号里什么也没有,返回来的仍然是这个对象,即使在括号中设置了内容,返回来的还是这个对象

        //removeClass()方法,同上
        //移除类样式
        //$("#dv").removeClass("cls");
        //$("#dv").removeClass("cls").removeClass("cls2");
        //$("#dv").removeClass("cls cls2");
        //console.log($("#dv").removeClass("cls"));

        //css方法是不能添加或者移除类样式的
        //$("#dv").css("class","cls");

      });
    });
  </script>
</head>
<body>
<input type="button" value="显示效果" id="btn"/>
<div id="dv"></div>

</body>
</html>

案例:突出显示,透明度的用法

    *注:遇到了一个问题,图片冲突了,文件夹里只有这个,确显示了一张已经删除的,用的google,ctrl+shift+del清一下缓存就ok了。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding:0;
            margin:0;
        }
        body{
            background-color: #000;
        }
        ul{
            list-style: none;
        }
        .wrap{
            margin:100px auto 0;
            width:630px;
            height:394px;
            padding:10px 0 0 10px;
            background-color: #000;
            overflow: hidden;
            border:1px solid #fff;
        }
        .wrap li{
            float: left;
            margin:0 10px 10px 0;
        }
        .wrap img{
            display: block;
            border:0;
        }
    </style>
    <script src="jquery-1.12.2.js"></script>
    <script>
        $(function () {
            $(".wrap>ul>li").mouseenter(function () {
                $(this).css('opacity',1).siblings('li').css('opacity',0.5);
            });
            /*离开那个大框子,才会恢复样式*/
            $('.wrap').mouseleave(function () {
                $(this).find('li').css('opacity',1);
            });
        });
    </script>
</head>
<body>
<div class="wrap">
    <ul>
        <li>
            <a href="#"><img src="images/01.jpg"></a>
        </li>
        <li>
            <a href="#"><img src="images/02.jpg"></a>
        </li>
        <li>
            <a href="#"><img src="images/03.jpg"></a>
        </li>
        <li>
            <a href="#"><img src="images/04.jpg"></a>
        </li>
        <li>
            <a href="#"><img src="images/05.jpg"></a>
        </li>
        <li>
            <a href="#"><img src="images/06.jpg"></a>
        </li>

    </ul>
</div>
</body>
</html>

案例:手风琴

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            padding:0;
            margin:0;
        }
        ul{
            list-style:none;
        }
        .box{
            width:1200px;
            height:400px;
            margin:50px auto;
            border:1px solid red;
            overflow: hidden;
        }
        .box li{
            width:240px;
            height:400px;
            float: left;
        }
    </style>
    <script src="jquery-1.12.2.js"></script>
    <script>
        $(function () {
            $('.box>ul>li').mouseenter(function () {
                $(this).css('width','800px').siblings('li').css('width','100px');
            });
        });
    </script>
</head>
<body>
<div class="box">
    <ul>
        <li><img src="images/1.jpg"></li>
        <li><img src="images/2.jpg"></li>
        <li><img src="images/3.jpg"></li>
        <li><img src="images/4.jpg"></li>
        <li><img src="images/5.jpg"></li>
    </ul>
</div>
</body>
</html>

案例:开关灯实现,类样式的切换方法

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    .cls{
      background-color: black;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>
//    $(function () {
//      $("#btn").click(function () {
//        //判断body是否应用了cls类样式,如果应用了就移除,否则就添加
//        if($("body").hasClass("cls")){
//          $("body").removeClass("cls");
//        }else{
//          $("body").addClass("cls");
//        }
//      });
//    });

    //第二种方式
    $(function () {
      $("#btn").click(function () {
        //切换---类样式
        $("body").toggleClass("cls");
      });
    });
  </script>
</head>
<body>
<input type="button" value="开/关" id="btn"/>


</body>
</html>

获取兄弟元素的几种方法

        //获取某个li的下一个兄弟元素
        //$(this).next("li").css("backgroundColor","yellowgreen");
        //获取某个li的前一个兄弟元素
        //$(this).prev("li").css("backgroundColor","greenyellow");
        //获取某个li的后面的所有的兄弟元素
        //$(this).nextAll("li").css("backgroundColor","red");
        //获取某个li的前面的所有的兄弟元素
        //$(this).prevAll("li").css("backgroundColor","red");
        //获取当前的li的所有的兄弟元素
        //$(this).siblings("li").css("backgroundColor","gray");

 

断链:对象调用方法之后,返回的已经不是当前的这个对象了,此时再调用方法,就出现了断链
.end()方法是修复断链,恢复断链之前的状态
        //不推荐使用链式编程

案例:想实现的效果是,当前前边一个色,后边一个色,由于链式编程,返回出错了,所以通过end()方法可以实现分层的效果。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    ul {
      list-style-type: none;
      width: 200px;
      position: absolute;
      left: 500px;
    }

    ul li {
      margin-top: 10px;
      cursor: pointer;
      text-align: center;
      font-size: 20px;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>
    $(function () {
      $("ul>li").mouseenter(function () {//鼠标进入事件
        $(this).css("backgroundColor", "red").siblings("li").css("backgroundColor", "");
      }).mouseleave(function () {//鼠标离开事件
        $(this).parent().find("li").css("backgroundColor", "");
      }).click(function () {//点击事件
        $(this).prevAll("li").css("backgroundColor", "yellow").end().nextAll("li").css("backgroundColor", "blue");
      });
    });
  </script>
</head>
<body>
<ul>
  <li>青岛啤酒(TsingTao)</li>
  <li>瓦伦丁(Wurenbacher)</li>
</ul>
</body>
</html>

案例:jQuery中显示和隐藏的动画

    * show和hide方法有参数
    * 参数1:时间----1000毫秒---1秒
    * 参数2:回调函数---动画执行完毕后才执行

其他方法:

    * 参数和上面的是一样
    * slideDown()滑出
    * slideUp()滑入

    * slideToggle()切换滑入和滑出           ----------->切换的意思是显示和隐藏的切换。

    * fadeIn()淡入
    * fadeOut()淡出
    * fadeToggle()切换淡入和淡出

    * fadeTo(时间,透明值结束);      -------------->时间可以是具体的值,也可以是下边的选项,最后以这个透明度作为结束
    * slow 比较慢的
    * fast 比较快的
    * normal

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    div {
      width: 300px;
      height: 200px;
      background-color: mediumvioletred;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>
    $(function () {
      //点击第一个按钮显示div
      $("#btn1").click(function () {
        $("#dv").show(5000,function () {
          alert("完了");
        });
      });
      //点击第二个按钮隐藏div
      $("#btn2").click(function () {
        $("#dv").hide(5000,function () {
          alert("好了");
        });
      });
    });
  </script>
</head>
<body>
<input type="button" value="显示" id="btn1"/>
<input type="button" value="隐藏" id="btn2"/>
<div id="dv"></div>

</body>
</html>

案例:通过animate函数来做动画

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    img{
      position: absolute;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>

    //参数1:键值对----css属性和值
    //参数2:时间---1000毫秒---1秒
    //参数3:回调函数
    $(function () {
      $("#im").animate({"width":"300px","height":"300px","left":"100px","top":"100px"},3000).animate({"width":"30px","height":"30px","left":"10px","top":"600px"},300).animate({"width":"50px","height":"50px","left":"800px","top":"20px","opacity":0.5},2000);
    });
  </script>
</head>
<body>
<img src="images/bird.png" alt="" id="im" />

</body>
</html>

案例:tab切换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
    <style>
        *{
            padding:0;
            margin:0;
        }
        ul{
            list-style: none;
        }
        .wrapper{
            width:1000px;
            height:475px;
            margin:100px auto 0;
        }
        .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 src="jquery-1.12.2.js"></script>
    <script>
        $(function () {
            $(".tab>li").mouseenter(function () {
                $(this).addClass('active').siblings('li').removeClass('active');
                var index=$(this).index();
                $('.products>div:eq('+index+')').addClass('selected').siblings('div').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="###"><img src="imgs/guojidapai.jpg" alt=""/></a>
        </div>
        <div class="main">
            <a href="###"><img src="imgs/guozhuangmingpin.jpg" alt=""/></a>
        </div>
        <div class="main">
            <a href="###"><img src="imgs/qingjieyongpin.jpg" alt=""/></a>
        </div>
        <div class="main">
            <a href="###"><img src="imgs/nanshijingpin.jpg" alt=""/></a>
        </div>
    </div>
</div>
</body>
</html>

案例:隐藏动画案例,排队删除

    *vertical-align: top;    去除底部间隙

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    div {
      width: 400px;
	  border:1px solid black;
    }

    img {
      width: 90px;
      height: 90px;
      vertical-align: top;
    }

  </style>
  <script src="jquery-1.12.2.js"></script>
  <script>
    $(function () {
      //第一个按钮,隐藏
      $("#btn1").click(function () {
        $("div>img:last").hide(300,function f1() {
          $(this).prev().hide(300,f1);
        });
      });
      //第二个按钮,显示
      $("#btn2").click(function () {
          $("div>img:first").show(300,function f1() {
            $(this).next().show(300,f1);
          });
      });
    });

  </script>
</head>
<body>
<input type="button" value="隐藏动画" id="btn1"/>
<input type="button" value="显示动画" id="btn2"/>
<div>
  <img src="images/1.jpg"/>
  <img src="images/2.jpg"/>
  <img src="images/3.jpg"/>
  <img src="images/4.jpg"/>
</div>
</body>
</html>

案例:点一个没一个

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    div {
      width: 100px;
      height: 80px;
      margin: 2px;
      float: left;
    }

    img {
      width: 100px;
      height: 80px;
    }
  </style>
  <script src="jquery-1.12.2.js"></script>
  <script>
    $(function () {
         $("div").click(function () {
           $(this).hide(300);
         });
    });

  </script>
</head>
<body>
<div><img src="imagess/01.jpg"></div>
<div><img src="imagess/02.jpg"></div>
<div><img src="imagess/03.jpg"></div>
<div><img src="imagess/04.jpg"></div>
<div><img src="imagess/05.jpg"></div>
</body>
</html>

创建元素

        *除了子和进行关联外:子  .appendTo (父)

        *还可以:  父 .append ( 子 )

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    div{
      width: 200px;
      height: 100px;
      border:5px solid red;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>
    $(function () {
      $("#btn").click(function () {
        //创建一个子级元素直接加到父级元素
        $("<a href='http://www.baidu.cn'>百度</a>").appendTo($("#dv"));
      });
    });
  </script>
</head>
<body>
<input type="button" value="创建一个a标签" id="btn"/>
<div id="dv"></div>
</body>
</html>

注意:append  appendTo有点剪切的效果   而如果想实现克隆的效果需要通过clone方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>title</title>
    <style>
        #dv1{
            width: 300px;
            height: 200px;
            border: 2px solid red;
            margin-bottom: 20px;
        }
        #dv2{
            width: 300px;
            height: 200px;
            border: 2px solid green;
        }
    </style>
    <script src="jquery-1.12.2.js"></script>
    <script>
        $(function () {
            $("#btn").click(function () {
                //把第一个div中的p标签剪切到第二个div中
                $("#dv2").append($("#dv1>p"));
                $("#dv1>p").appendTo($("#dv2"));

                //把第一个div中的p标签复制到第二个div中
                $("#dv1>p").clone().appendTo($("#dv2"));
            });
        });
    </script>
</head>
<body>
<input type="button" value="显示效果" id="btn"/>
<div id="dv1">
    <p>我是快乐的</p>
</div>
<div id="dv2"></div>
</body>
</html>

创建元素的第二种方式

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>title</title>
  <style>
    div{
      width: 300px;
      height: 200px;
      border:1px solid red;
    }
  </style>
  <script src="jquery-1.12.1.js"></script>
  <script>
    $(function () {
      $("#btn").click(function () {
        //通过innerHTML的方式创建元素---以字符串的方式
        $("#dv").html("<input type='button' value='按钮'>");
      });

    });

  </script>
</head>
<body>
<input type="button" value="创建一个按钮" id="btn"/>
<div id="dv">
  hello world!
</div>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值