jquery

jqery选择器的区别

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
<div id="box1">123</div>
<div id="box2">456</div>
</body>
<script src="../jquery.js"></script>
<script>

    var obox1 = document.getElementById("box1");
    console.log(obox1);//元素
    obox1.style.background = "red"; //写样式
    var obox2 = $("#box2");
    console.log(obox2);//伪数组
    obox2.css("background","blue");//写样式
    // jq的DOM对象和原生的DOM对象的转换:
    // jq转原生:
    //     解析数组
    //     通过get方法
    obox2[0].style.background = "blue";
    obox2.get(0).style.background = "blue";

    // 原生转jq:
    //     使用jq的函数包裹原生DOM对象
    $(obox1).css("background","yellow")

</script>
</html>

jquery选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../jquery.js"></script>
</head>
<body>
<h1>一级标题1</h1>
<h1 style="display: none">一级标题2</h1>
<h1>一级标题3</h1>
<ul class="list">
    <li>html</li>
    <li class="red">javascript</li>
    <li>php</li>
    <li>css</li>
    <li class="red">mysql</li>
    <li>python</li>
</ul>
<ul class="list">
    <li>link1</li>
    <li></li>
    <li>link3</li>
    <li></li>
    <li>link5</li>
    <li>link6</li>
</ul>
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div id="cont">4</div>
<div id="cont">5</div>
<div id="cont">6</div>
<div class="msg">
    <div class="xbox">
        <h2>二级标题2-1</h2>
        <h2>二级标题2-2</h2>
    </div>
    <h2>二级标题1-1</h2>
    <h2>二级标题1-2</h2>
</div>
<span>7</span>
<span>8</span>
<span>9</span>
<input type="text" name="user">
<input type="text">
<input type="password" name="user">
</body>
<script>
    // ID失明特性,,有多个同名id,默认直选第一个同名ID;
     $("#cont").css("background","red");

     //其他选择器与css中用法大致相同,记住重点的用法。考略性能较高的方法;

      id为cus的父节点中的第一个div元素

     $("#cus").parents("div:first").css({"color":"red","border":"2px solid red"});
     $(".box").css("background","red");

     $("span").css("background","red")

     $(".msg h2").css("background","red");

     $(".msg").find("h2").css("background","red")//后代

     $(".msg>h2").css("background","red")
     $(".msg").children("h2").css("background","red")//儿子

     $(".msg+span").css("background","red")
     $(".msg").next("span").css("background","red")//兄弟

     $(".msg~span").css("background","red")
     $(".msg").nextAll("span").css("background","red")//下面所有的兄弟

     $("input[type=text][name]").css("background","red")//类型选择器;
</script>
</html>

jquery判断选择器和操作class

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{100px;height:100px;}
        .red{background: red}
        .yellow{background: yellow}
        .border{border: solid 4px black}
    </style>
    <script src="../jquery.js"></script>
</head>
<body>
    <input type="button" value="点我试试">
    <div class="box" id="red"></div>
</body>
<script>
//     console.log($(".box").is(".red"))//false
//     console.log($(".box").is("#red"))//true
//     console.log($(".box").hasClass("yellow"))//false
////      $(".box")[0].className = "red" //box被替换成class了;
//      $(".box").addClass("red border");//直接在类名box后加了两个类red  和 border
//      $(".box").removeClass("red");//删除了其中的一个类名red;
//
    $("input")[0].onclick=function () {
        if($(".box").is(".red")){
            $(".box").removeClass("red")
        }
        else{
            $(".box").addClass("red")
        }

    }



</script>
</html>

jquery的内置动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{100px;height:100px;background: red;position: absolute;left:0;top:0;}
    </style>
    <script src="../jquery.js"></script>
</head>
<body>
    <div class="box"></div>
    <br>
    <br>
    <br>
    <br>
    <br>
<input type="button" id="btn" value="开始">
</body>
<script>
    //先左移500,然后下移300,再宽度增加100
    $("#btn")[0].onclick=function () {
        $(".box").animate({
            left:500
        }).animate({
            top:300,
        }).animate({
            "+=100"
        })
    }
</script>
</html>

jquery的非内置动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{200px;height:200px;background: red}
    </style>
    <script src="../jquery.js"></script>
</head>
<body>
<input type="button" value="隐藏" id="btn1">
<input type="button" value="显示" id="btn2">
<input type="button" value="隐藏/显示" id="btn3">
<input type="button" value="上拉" id="btn4">
<input type="button" value="下拉" id="btn5">
<input type="button" value="上拉/下拉" id="btn6">
<input type="button" value="淡出" id="btn7">    //fadeIn()
<input type="button" value="淡入" id="btn8">    //fadeOut()
<input type="button" value="淡出/淡入" id="btn9">
<input type="button" value="半透明" id="btn10">
<div class="box"></div>
</body>
<script>
    //点击第一个按钮,让盒子先隐藏再显示最后颜色变黄
    $("#btn1")[0].onclick=function () {
        $(".box").hide(2000).show(2000,function () {
            $(".box").css("background","yellow")
        })//在show后面加一个回调函数,才可以在显示完之后变成黄色,不会发生异步;
//        $(".box").hide(2000).show(2000).css("background","yellow");//发生了异步,会在按钮的瞬间变成黄色;
    }

    //显示
    $("#btn2")[0].onclick=function () {
        $(".box").show(2000)
    }
    //显示/隐藏
    $("#btn3")[0].onclick=function () {
        $(".box").toggle(2000)
    }
    //上拉
    $("#btn4")[0].onclick = function(){
        $(".box").slideUp(1000)
    }
    $("#btn5")[0].onclick = function(){
        $(".box").slideDown(1000)
    }
    $("#btn6")[0].onclick = function(){
        $(".box").slideToggle()
    }

$("#btn7")[0].onclick = function(){
$(".box").fadeOut()
}
$("#btn8")[0].onclick = function(){
$(".box").fadeIn()
}
$("#btn9")[0].onclick = function(){
$(".box").fadeToggle()
}

$("#btn10")[0].onclick = function(){
$(".box").fadeTo(1000,0.5)
}
</script> </html>

动画执行顺序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{100px;height:100px;background: red;position: absolute;left:0;top:0;}
    </style>
    <script src="../jquery.js"></script>
</head>
<body>
<div class="box"></div>
<br>
<br>
<br>
<br>
<br>
<input type="button" id="btn" value="开始">
</body>
<script>
    animate支持同步函数。若不支持,则需要使用queue
    box右移持续时间2s,然后下移。

    $("#btn")[0].onclick = function() {
        $(".box").animate({
            left: 600
        }, 2000, function () {
            $(".box").animate({
                top: 500
            })
        })
    }

    box右移持续时间2s,然后下移。然后再变色
    $("#btn")[0].onclick = function() {
         $(".box").animate({
             left:600
         },2000).animate({
             top:500
         },function(){
             $(".box").css("background","yellow")
         })
    }


box右移持续时间2s,然后下移持续2s。然后再变色,再左移
    $("#btn")[0].onclick = function() {
        $(".box").animate({
            left:600
        },2000).animate({
            top:500
        },2000) .queue(function(next){
            $(".box").css("background","yellow")
            next();
        }).animate({
            left:0
        })
    }
</script>
</html>

jquery动画的延迟和停止

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{100px;height:100px;background: red;position: absolute;left:0;top:0;}
    </style>
    <script src="../jquery.js"></script>
</head>
<body>
<div class="box"></div>
<br>
<br>
<br>
<br>
<br>
<input type="button" id="btn" value="开始">
<input type="button" id="btn2" value="停止">
</body>
<script>

//延迟1s右移,移动时间2s,延迟1s下移,延迟1s左移,延迟1s下移动
//        $("#btn")[0].onclick = function() {
//
//             $(".box").delay(1000).animate({
//                 left:600
//             },2000).delay(1000).animate({
//                 top:500
//             }).delay(1000).animate({
//                 left:0
//             }).delay(1000).animate({
//                 top:0
//             })
//
//        }
    $("#btn")[0].onclick=function () {
        $(".box").animate({
            left:600
        },2000).animate({
            top:500
        },2000).animate({
            left:0
        },2000).animate({
            top:0
        },2000)
    }
    $("#btn2")[0].onclick = function(){
        $(".box").stop(true,false);
    }
    // stop():两个参数,都是布尔值,默认为false
    // 1.动画队列:false:不操作;true:清空了
    // 2.当前动画:false:立即停止;true:立即到终点
    stop()等价于stop(false,false):停止被选元素当前的动画,但允许完成以后队列的所有动画。



</script> </html>

 jq的模块:

    // jq的模块
    // 选择器:$.fn
    // 动画:$.fx

    // 毫秒数,频率
     $.fx.interval = 100; //控制这个页面的所有动画每隔100ms做一帧动画。
    
    //是否做动画
     $.fx.off=true;//控制这个页面的所有动画都是去动画效果,直接到达终点。

    ps:实际开发中基本不会用到这两个属性
$("#btn")[0].onclick = function(){ $(".box").animate({ left:600 },2000).animate({ top:500 }) }
原文地址:https://www.cnblogs.com/hy96/p/11552057.html