7.1 jQuery尺寸
以上jQuery方法的参数如果为空,则是获取相对应的值,返回值是数字型。
如果参数里写上了数值,则是修改对应的值。
参数可以不必写单位。
7.2 jQuery位置
位置主要有三个:offset()、position()、scrollTop()/scrollLeft()
1.offset() 设置或获取元素偏移
①offset()方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。(给父级,子盒子加上相对、绝对定位也一样,与父级没有关系)
②该方法有两个属性left、top,offset().top获取文档距离文档顶部的距离,offset().left获取文档距离文档左侧的距离。
<script> $(function(){ // 获取对应元素的偏移 console.log($(".son").offset().top); // 设置对应元素的偏移 $(".son").offset({ top:100, left:100 }) }) </script>
2.position()获取元素偏移
①position()用于返回元素相对于带有定位的父级偏移坐标,如果父级没有定位,则以文档为准。
②只能获取不能设置
3.scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧
1 <script> 2 $(function(){ 3 // 当页面滚动时触发 4 $(window).scroll(function(){ 5 // 如果文档被卷去的头部>=了150 让son元素显示,反之隐藏 6 if($(document).scrollTop() >= 150){ 7 $(".son").show(); 8 }else { 9 $(".son").hide(); 10 } 11 }); 12 }) 13 </script>
此处150可以设为任意值,如当想要滚动到盒子时显示,则需先用offset获取距离,当scrolltop大于这个值显示返回盒子。
返回顶部功能实现;
scrollTop可以设置值
$(".back").click(function(){ $(document).scrollTop(100); })
注意:scrollTop不带有动画
带有动画的返回顶部
分析:
1.使用animate动画返回顶部
2.animate动画函数里面有个scrollTop
属性,可以设置位置
3.但是是元素做动画(不是整个文档做动画),因此$("body, html").animate({ scrollTop: 0 })
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Document</title> 9 <script src="jquery.min.js"></script> 10 <style> 11 body { 12 height: 2000px; 13 } 14 15 .back { 16 position: fixed; 17 width: 50px; 18 height: 50px; 19 background-color: red; 20 right: 30px; 21 bottom: 100px; 22 display: none; 23 } 24 25 .container { 26 width: 900px; 27 height: 500px; 28 background-color: skyblue; 29 margin: 400px auto; 30 } 31 </style> 32 </head> 33 34 <body> 35 <div class="back">返回顶部</div> 36 <div class="container"> 37 </div> 38 <script> 39 $(function () { 40 // 设置被卷去的头部 41 $(document).scrollTop(100); // 打开此页面就已被卷去100px 42 43 // 页面滚动事件 44 var boxTop = $(".container").offset().top; 45 $(window).scroll(function () { 46 if ($(document).scrollTop() >= boxTop) { 47 $(".back").fadeIn(); 48 } else { 49 $(".back").fadeOut(); 50 } 51 }); 52 53 // 返回顶部 54 $(".back").click(function () { 55 // $(document).scrollTop(0); // 直接返回顶部,不带动画 56 $("body, html").stop().animate({ 57 scrollTop: 0 58 }); // 同时写下body、html是因为firefox、ie不支持body,而chrome支持body,为了兼容 59 }) 60 }) 61 </script> 62 </body> 63 64 </html>
7.3 案例——品优购电梯导航