jQuery介绍
是一个轻量级的js框架/库,其宗旨是write less do more。
jQuery对象
js的对象叫做dom对象
使用jQuery框架产生的对象是jQuery对象,是对dom对象的包装。jQuery下的对象方法和dom对象方法不能混用,只能各用个的。
约定:如果获取的是 jQuery 对象, 那么要在变量前面加上$
//基本语法 $(selector).action() //即选择器选择生成对象,对象调用方法
jQuery中文手册:http://jquery.cuishifeng.cn/
对象转换
var $variable = jQuery 对象 var variable = DOM 对象 $variable[0] jquery对象按索引取出来的是dom对象,如: $("#msg").html() $("#msg")[0].innerHTML
查找操作对象
选择器
查找要操作的标签,生成jquery对象
基本选择器
$("*")
$("#id")
$(".class")
$("element")
$(".class,p,div")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p id="p1">PPP</p>
<div class="c1">DIV</div>
<div class="c1">DIV</div>
<div class="c1">DIV</div>
<span class="d1">SPAN</span>
<span class="c2">SPAN</span>
<a href="">AAAA</a>
<script src="jquery-3.2.1.js"></script> //导入jquery文件
<script>
// 基本选择器
$("#p1").css("color","red") //按照id选择
$(".d1").css({"color":"green","fontSize":"50px"}) //按照class选择
$("div").css({"color":"yellow","fontSize":"35px"}) //按照标签名div选择
//$("*").css({"color":"blue","fontSize":"30px"}) //body下的所有标签
$(".c2,a").css({"color":"gray","fontSize":"30px"}) //多个条件用空格隔开
</script>
</body>
</html>
注意,获取的jquery对象是一个集合,jquery对象在做方法调用进行属性操作的时候,会把集合里的所有元素都循环一次执行,想想js代码的循环,尼玛...
层级选择器
$(".outer div") //后代
$(".outer>div") //子代
$(".outer+div") //毗邻
$(".outer~div") //普通兄弟
同css组合选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>p6</p>
<div class="outer">
<div class="inner">
<p>p3</p>
<div>DIV</div>
</div>
<p>p2</p>
</div>
<p>p1</p>
<p>p4</p>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".outer p").css("color","red") //后代
//$(".outer>p").css("color","red") //子代
//$(".outer+p").css("color","red") //毗邻
//$(".outer~p").css("color","red") //普通兄弟,向下不向上
</script>
</body>
</html>
属性选择器
$('[id]') //属性名
$('[id="div1"]') //一整条属性
$('["bob="man"][id]') //多条属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div bob="man">bob1</div>
<div bob="man" class="c1">bob2</div>
<div bob="man2">bob3</div>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// ==================属性选择器
$("[bob]").css("color","red")
// $("[bob='man']").css("color","red")
// $("[bob='man'][class]").css("color","red")
</script>
</body>
</html>
表单选择器
只针对input表单,按照类型选择
$("[type='text']")
$(":text") //简写
$("input:checked").hide(); //hide()方法,隐藏元素
//以上选择器只适用于input标签,input:checked只能用于单选框和复选框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text">
<input type="text">
<input type="text" >
<input type="checkbox" checked="checked">
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// 针对input表单
$("[type='text']").css("border","1px solid red");
$("input:checked").hide();
//$(":text").css("border","1px solid green");
</script>
</body>
</html>
表单属性选择器
:enabled
:disabled
:checked
:selected
body>
<form>
<input type="checkbox" value="123" checked>
<input type="checkbox" value="456" checked>
<select>
<option value="1">Flowers</option>
<option value="2" selected="selected">Gardens</option>
<option value="3" selected="selected">Trees</option>
<option value="3" selected="selected">Trees</option>
</select>
</form>
<script src="jquery.min.js"></script>
<script>
// console.log($("input:checked").length); // 2
// console.log($("option:selected").length); // 只能默认选中一个,所以只能lenth:1
$("input:checked").each(function(){
console.log($(this).val())
})
</script>
</body>
筛选器
基本筛选器
$("li:first") //按索引取第一个
$("li:eq(2)") //按索引取第三个
$("li:even") //取偶数
$("li:odd") //取偶数
$("li:gt(1)") //大于索引1,也有lt小于
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul class="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
<li class="item">666</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// $("li:first").css("color","red");
// $("li:odd").css("color","red");
// $("li:even").css("color","red");
// $("li:eq(3)").css("color","red");
// $("li:gt(1)").css("color","red");
$("li:gt(1):lt(3)").css("color","red"); //链式语法,前面的大于1的结果然后在结果上再小于3
</script>
</body>
</html>
过滤筛选器
推荐的筛选器写法,可用于传变量
$("li").eq(2)
$("li").first()
$("ul li").hasClass("test") //判断是否存在class为test的元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul class="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
<li class="item">666</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
var $x=3
$("ul li").eq($x).css("color","red");
console.log($("ul li").hasClass('item'));
</script>
</body>
</html>
查找筛选器
//查找子标签: $("div").children(".test") $("div").find(".test") //向下查找兄弟标签: $(".test").next() $(".test").nextAll() $(".test").nextUntil() //向上查找兄弟标签: $("div").prev() $("div").prevAll() $("div").prevUntil() //查找所有兄弟标签: $("div").siblings() //查找父标签: $(".test").parent() $(".test").parents() $(".test").parentUntil()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div class="c1">
<div class="c3">
DIV
<div class="c4">
<p class="p1">P1</p>
</div>
</div>
<p>P2</p>
</div>
<div class="c1">
<p class="item" id="d1">p3</p>
<p class="item">p4</p>
<p class="item">p5</p>
<p class="item" id="d4">p6</p>
<p class="item">p7</p>
</div>
<div id="c1" egon="123"></div>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// jquery支持链式操作:前一段的结果给后一段执行
//查找子标签
//$("div").children(".item").css("color","red") //所有后代
//$("div").find(".p1 ").css("color","red") //所有子代
//==========================================找兄弟标签
//next
//$("#d1").next().css("color","red").next().css("color","green");
//$("#d1").nextAll().css("color","red");
//$("#d1").nextUntil("#d4").css("color","red"); //结果为p4、p5
//prev同next,只是方向为向上
//siblings
//$("#d4").siblings().css("color","red");
//===============================================找父标签
//console.log($(".p1").parent().parent().attr("class"))
//console.log($(".p1").parents().attr("class"))
//$(".p1").parents().css("color","red")
//$(".p1").parentsUntil(".c1").css("border","1px solid red")
</script>
</body>
</html>
操作元素(属性、css、文档处理)
事件
页面载入
语法
ready(fn) // 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。 $(document).ready(function(){}) -----------> $(function(){})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
</head>
<body>
<script>
$(document).ready(function(){
alert(123)
})
// $(function(){
// alert(123)
// })
</script>
</body>
</html>
事件绑定
语法
jquery_obj集合.事件(function(){})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".item").click(function () {
alert($(this).index())
});
</script>
</body>
</html>
补充
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
// ====================bind
$(".item").bind("click",function () {
alert(123)
});
</script>
</body>
</html>
事件委派
在原有标签基础上,后边添加的标签,继承原有标签的事件
语法
jquery_obj集合.on(事件,[selector],[data],function)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<button class="add">ADD</button>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".item").click(function () {
alert($(this).index())
});
// on方法
$("#box").on("click",".item",function () {
// alert($(this).html());
alert($(this).index());
});
//添加一个标签,点击该标签显示索引
$(".add").click(function () {
$("#box").append("<div class='item'>666</div>")
});
</script>
</body>
</html>
事件委派清除
清除标签绑定的事件
语法
jquery_obj集合.off(事件)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul id="box">
<li class="item">111</li>
<li class="item">222</li>
<li class="item">333</li>
<li class="item">444</li>
<li class="item">555</li>
</ul>
<button class="add">ADD</button>
<button class="releave">off</button>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$("#box").on("click",".item",function () {
alert($(this).index());
});
$(".add").click(function () {
$("#box").append("<div class='item'>666</div>")
});
$(".releave").click(function () {
//绑定给那个对象就解除哪个对象的事件委派
$("#box").off("click")
});
</script>
</body>
</html>
事件切换
hover事件
一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。
over:鼠标移到元素上要触发的函数
out:鼠标移出元素要触发的函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
.test{
200px;
height: 200px;
background-color: wheat;
}
</style>
</head>
<body>
<div class="test"></div>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
function enter(){
alert("enter")
}
function out(){
alert("out")
}
$(".test").hover(enter,out)
// $(".test").mouseenter(function(){
// alert("enter")
// });
// $(".test").mouseleave(function(){
// alert("leave")
// });
</script>
</body>
</html>
属性操作
CSS类操作
语法
$("").addClass(class|fn)
$("").removeClass([class|fn])
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tab</title>
<style>
*{
margin: 0;
padding: 0;
}
.tab_outer{
margin: 20px auto;
60%;
}
.menu{
background-color: #cccccc;
line-height: 40px;
text-align: center;
}
.menu li{
display: inline-block;
margin-left: 14px;
padding:5px 20px;
}
.menu a{
border-right: 1px solid red;
padding: 11px;
}
.content{
background-color: tan;
border: 1px solid green;
height: 300px;
}
.hide{
display: none;
}
.current{
background-color: #2868c8;
color: white;
border-top: solid 2px rebeccapurple;
}
</style>
</head>
<body>
<div class="tab_outer">
<ul class="menu">
<li relation="c1" class="current">菜单一</li>
<li relation="c2" >菜单二</li>
<li relation="c3">菜单三</li>
</ul>
<div class="content">
<div id="c1">内容一</div>
<div id="c2" class="hide">内容二</div>
<div id="c3" class="hide">内容三</div>
</div>
</div>
</body>
<script src="../2017.8.14/jquery-3.2.1.js"></script>
<script>
$(".menu li").click(function(){
var index=$(this).attr("relation");
$("#"+index).removeClass("hide").siblings().addClass("hide");
$(this).addClass("current").siblings().removeClass("current");
});
</script>
</html>
属性操作
语法
$("").attr();
$("").removeAttr();
$("").prop();
$("").removeProp();
<input id="chk1" type="checkbox" />是否可见 <input id="chk2" type="checkbox" checked="checked" />是否可见 <script> //对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。 //对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。 //像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此 //需要使用prop方法去操作才能获得正确的结果。 // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // false // ---------手动选中的时候attr()获得到没有意义的undefined----------- // $("#chk1").attr("checked") // undefined // $("#chk1").prop("checked") // true console.log($("#chk1").prop("checked"));//false console.log($("#chk2").prop("checked"));//true console.log($("#chk1").attr("checked"));//undefined console.log($("#chk2").attr("checked"));//checked </script>
HTML/Text/value
语法
$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr])
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day48/jquery-3.2.1.js'></script>
</head>
<body>
<div class="c1">
<p>PPP</p>
</div>
<input type="text" value="123">
<div value="123"></div>
<script>
// 取值操作
// html是标签操作、text是文本操作
// console.log($(".c1").html());
// console.log($(".c1").text());
//赋值操作
// $(".c1").html("<a href=''>click</a>")
// $(".c1").text("<a href=''>click</a>")
// 对value属性取值和赋值操作
//console.log($(":text").val()); //取值
//$(":text").val(456); //赋值
// 注意:value属性必须是固有属性
console.log($("div").val()) // 取不到value属性的值
</script>
</body>
</html>
each循环
例如:
$("p").css("color","red")
运行的过程中内部是一个循环,但是如果该循环中的某一个元素需要特殊处理的时候,就不能使用内部的默认循环了
方式一
var arr=[111,222,333]; var obj={"name":"egon","age":123}; $.each(arr,function (i,j) { console.log(i); //索引 console.log(j); //值 });
方式二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../2017.8.14/jquery-3.2.1.js'></script>
</head>
<body>
<p>111</p>
<p>222</p>
<p>333</p>
<p>444</p>
<script>
$("p").each(function () {
console.log($(this).index()); // $(this) ----=>代指当前循环到的标签对象
})
// 注意:下面的this指代$("p")集合中的一个元素
// $("p").click(function () {
// console.log($(this).index())
// });
</script>
</body>
</html>
each扩展
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../2017.8.14/jquery-3.2.1.js'></script>
</head>
<body>
<p>111</p>
<p>222</p>
<p>333</p>
<p>444</p>
<script>
// 示例1
//function f(){
// for(var i=0;i<4;i++){
// if (i==2){
// return
// }
// console.log(i)
// }
//}
//f();
//示例2
//li=[11,22,33,44];
//$.each(li,function(i,v){
//
// if (v==33){
// return false; // ===试一试 return false会怎样?
// }
// console.log(v)
//});
// each的参数function内如果出现return 结束当次循环,类似于continue;
// 如果出现return False,结束的是整个each循环,类似break。
</script>
</body>
</html>
文档节点处理
创建一个标签对象
语法
$("<标签名>")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='jquery-3.2.1.js'></script>
</head>
<body>
<div class="outer">
</div>
<script>
var $ele=$("<p>"); // <p></p>
$ele.text("hello world"); // <p>hello world</p>
</script>
</body>
</html>
标签内部插入标签对象
语法
$("").append(content|fn) ----->$("p").append("<b>Hello</b>");
$("").appendTo(content) ----->$("p").appendTo("div");
$("").prepend(content|fn) ----->$("p").prepend("<b>Hello</b>");
$("").prependTo(content) ----->$("p").prependTo("#foo");
注意:可以使用function添加内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="outer">
<p>abc</p>
</div>
<script>
//内部插入
var $ele=$("<p>"); // <p></p>
$ele.text("hello world"); // <p>hello world</p>
// 追加到最后的位置
$(".outer").append($ele);
// $ele.appendTo(".outer");
// 添加到最上面的位置
var $ele2=$("<p>")
$ele2.text("thank you");
$(".outer").prepend($ele2);
// $ele.prependTo(".outer")
</script>
</body>
</html>
标签外部插入标签对象
语法
$("").after(content|fn) ----->$("p").after("<b>Hello</b>");
$("").before(content|fn) ----->$("p").before("<b>Hello</b>");
$("").insertAfter(content) ----->$("p").insertAfter("#foo");
$("").insertBefore(content) ----->$("p").insertBefore("#foo");
注意:可以使用function添加内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="outer">
<p>abc</p>
</div>
<script>
//内部插入
var $ele=$("<p>");
$ele.text("hello world");
// 在标签后添加
$(".outer").after($ele) //
//$($ele).insertAfter(".outer")
//在标签前添加
var $ele2=$("<p>")
$ele2.text("thank you");
$(".outer").before($ele2)
//$($ele2).insertBefore(".outer")
</script>
</body>
</html>
删除节点
语法
$("").empty() //内容删除
$("").remove([expr] //整个标签删除
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="outer">
<p>abc</p>
</div>
<script>
// 删除节点,连标签清除
// $(".outer").remove()
// 清空节点,内容清除
$(".outer").empty();
</script>
</body>
</html>
替换节点
语法
$("").replaceWith(content|fn)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="outer">
<p>abc</p>
</div>
<script>
// 替换节点
var $ele=$("<p>");
$ele.text("hello world");
$(".outer p").replaceWith($ele);
</script>
</body>
</html>
拷贝节点
语法
$("").clone([Even[,deepEven]])
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="outer">
<p>abc</p>
</div>
<script>
// 拷贝节点
var $outer=$(".outer").clone();
$(".outer").after($outer)
</script>
</body>
</html>
动画效果
显示与隐藏
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<p>hello world</p>
<img src="http://img1.imgtn.bdimg.com/it/u=1020860587,2909379450&fm=26&gp=0.jpg" alt="">
<hr>
<button class="hides">hide</button>
<button class="shows">show</button>
<button class="toggle">toggle</button>
<script>
//注意:不加时间试一试
//点击事件触发隐藏
$(".hides").click(function () {
$("img").hide(1000)
});
//点击事件触发显示
$(".shows").click(function () {
$("img").show(1000)
});
//点击事件触发显示和隐藏的切换
$(".toggle").click(function () {
$("img").toggle(1000)
})
</script>
</body>
</html>
滑动
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='jquery-3.2.1.js'></script>
</head>
<body>
<p style="background-color: #2459a2;color: white;text-align: center;line-height: 40px">hello world</p>
<img src="http://img1.imgtn.bdimg.com/it/u=1020860587,2909379450&fm=26&gp=0.jpg" alt="">
<hr>
<button class="slideUp">slideUp</button>
<button class="slideDown">slideDown</button>
<button class="slideToggle">slideToggle</button>
<script>
//注:不加时间试一试
//向上滑动消失
$(".slideUp").click(function () {
$("p").slideUp(1000);
});
//向下滑动出现
$(".slideDown").click(function () {
$("p").slideDown(1000)
});
//向上向下切换
$(".slideToggle").click(function () {
$("p").slideToggle(1000)
})
</script>
</body>
</html>
淡入淡出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='jquery-3.2.1.js'></script>
</head>
<body>
<p style="background-color: #2459a2;color: white;text-align: center;line-height: 40px">hello world</p>
<img src="http://img1.imgtn.bdimg.com/it/u=1020860587,2909379450&fm=26&gp=0.jpg" alt=""><hr>
<button class="fadeIn">fadeIn</button>
<button class="fadeOut">fadeOut</button>
<button class="fadeToggle">fadeToggle</button>
<button class="fadeTo">fadeTo</button>
<script>
//淡入
$(".fadeIn").click(function () {
$("img").fadeIn(2000);
});
//淡出
$(".fadeOut").click(function () {
$("img").fadeOut(2000)
});
//淡出淡入切换
$(".fadeToggle").click(function () {
$("img").fadeToggle(1000)
})
//淡出或淡入的程度
$(".fadeTo").click(function(){
$("img").fadeTo(1000,0.4);
})
</script>
</body>
</html>
回调函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<button>hide</button>
<p>hello world</p>
<script>
$("button").click(function(){
$("p").hide(1000,function(){
alert($(this).html())
})
})
</script>
</body>
</html>
CSS操作
CSS位置操作
语法
$("").offset([coordinates]) //元素移动,定位对象是整个页面,
$("").position() //元素偏移(定位对象和offset不一样,是通过父亲标签定位)
$("").scrollTop([val]) //上下滚动条的值
$("").scrollLeft([val]) //左右滚动条的值
offset元素移动示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
}
.box1{
200px;
height: 200px;
background-color: yellowgreen;
}
.box2{
200px;
height: 200px;
background-color: rebeccapurple;
}
</style>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
<button>change</button>
<script>
//元素移动的是根据整个页面的距离实现的,通过改变元素的上侧、左侧和整个页面的上侧和左侧的距离改变
$("button").click(function () {
//.box1向下移动200px
$(".box1").offset({left:0,top:200});
//.box2向下移动400px,向右移动200px
$(".box2").offset({left:200,top:400});
})
</script>
</body>
</html>
position元素偏移
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
}
.box1{
200px;
height: 200px;
background-color: wheat;
}
.box2{
200px;
height: 200px;
background-color: green;
}
.outer{
position: relative;
}
</style>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="box1"></div>
<div class="outer">
<div class="box2"></div>
</div>
<button>change</button>
<script>
$("button").click(function () {
alert("left"+$(".box1").position().left + "top" + $(".box1").position().top)
alert("left"+$(".box2").position().left + "top" + $(".box2").position().top)
</script>
</body>
</html>
scrollTop滚动条
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box{
100%;
height: 2000px;
background-color: wheat;
}
#returnTop{
70px;
height: 40px;
background-color: #2459a2;
color: white;
font-weight: 800;
text-align: center;
line-height: 40px;
position: fixed;
bottom: 20px;
right: 20px;
display: none;
}
</style>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="box"></div>
<div id="returnTop">TOP</div>
<script>
//scroll事件,滚动进度条时候
$(window).scroll(function () {
console.log($(window).scrollTop());
if($(window).scrollTop()>200){
$("#returnTop").show();
}
else {
$("#returnTop").hide();
}
});
//scrollTop括号里加数字,表示将滚动条位置滚至数字像素,不加数字表示取值
$("#returnTop").click(function () {
$(window).scrollTop(0)
})
</script>
</body>
</html>
尺寸操作
语法
$("").height([val|fn])
$("").width([val|fn])
$("").innerHeight()
$("").innerWidth()
$("").outerHeight([soptions])
$("").outerWidth([options])
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.box{
200px;
height: 200px;
padding: 50px;
border: 10px red solid;
background-color: green;
margin: 20px;
}
</style>
<script src='../day47/jquery-3.2.1.js'></script>
</head>
<body>
<div class="box">DIV</div>
<script>
console.log($(".box").height()); //内容区高度200
console.log($(".box").width()); //内容区宽度200
console.log($(".box").innerHeight()); //内容区+padding区高度300
console.log($(".box").innerWidth()); //内容区+padding区宽度300
console.log($(".box").outerHeight()); //内容区+padding区+border边框区高度 320
console.log($(".box").outerWidth()); //内容区+padding区+border边框区宽度 320
console.log($(".box").outerHeight(true)); ///内容区+padding区+border边框区宽度+margin区高度 320
console.log($(".box").outerWidth(true)); ///内容区+padding区+border边框区宽度+margin区高度 320
</script>
</body>
</html>