• jQuery小结四


    jQuery 获取尺寸

    语法用法
    width() / height()取得匹配元素宽度和高度值 只计算内部
    innerWidth() / innerHeight()取得匹配元素宽度和高度值 包含 padding
    outWidth() / outHeight()取得匹配元素宽度和高度值 包含 padding border
    outWidth(true) / outHeight(true)取得匹配元素宽度和高度值 包含 padding border margin

    以上参数为空,返回的就是对应的值,返回的是数字类型

    如果参数为数字,则是修改相应值

    参数可以不必写单位 

    1. <style>
    2. div{
    3. width: 200px;
    4. height: 400px;
    5. border: 8px solid #f35;
    6. padding:4px;
    7. margin: 24px;
    8. box-sizing: border-box; 注意这里设置样式作用 padding border 不会撑大盒子
    9. }
    10. style>
    11. <script>
    12. 不包含padding的值 不包含border
    13. console.log($('div').width()); 176
    14. console.log($('div').height()); 376
    15. 包含padding的值 不包含border
    16. console.log($('div').innerWidth()); 184
    17. console.log($('div').innerHeight()); 384
    18. 包含padding的值 包含border 就是盒子的正常大小
    19. console.log($('div').outerWidth()); 200
    20. console.log($('div').outerHeight()); 400
    21. 再多增加 margin的值
    22. console.log($('div').outerWidth(true)); 248
    23. console.log($('div').outerHeight(true)); 448
    24. script>

    jQuery 获取元素的位置

    位置主要有三个:offset() position() scrollTop() / scrollLeft()

    offset 获取或设置元素偏移

    1. offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
    2. 该方法有2个属性left,top, offset().top用于获得元素距离文档顶部的距离,offset().left 用于获取元素距文档左侧的距离
    3. 可以设置元素的偏移量:offset({top:10,left:30})

    position() 获取元素偏移量

    position() 方法用于返回元素相对于带定位的父元素偏移坐标,如果父元素都没有定位,则以文档为准   position()方法只能获取不能设置 

    scrollTop() / scrollLeft() 设置或获取元素被卷去的头部或左侧

    侧导航显示隐藏&&切换页面位置的案例:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <link rel="stylesheet" href="../Double%20thread/initialize.css">
    5. <script src="jquery-3.6.0.js">script>
    6. <meta charset="UTF-8">
    7. <title>根据页面滚动改变一些样式title>
    8. <style>
    9. div{
    10. margin: 0px auto 10px;
    11. width: 1200px;
    12. }
    13. #header{
    14. height: 240px;
    15. background: slateblue;
    16. }
    17. #banner{
    18. height: 455px;
    19. background: #888888;
    20. background-image: url("27.png");
    21. background-repeat: no-repeat;
    22. }
    23. #content{
    24. height: 2468px;
    25. background: antiquewhite;
    26. }
    27. #right_fixed{
    28. position: fixed;
    29. top: 250px;
    30. right: 0px;
    31. background: #548642;
    32. width: 80px;
    33. display: none;
    34. }
    35. #right_fixed p{
    36. background: #ff3355;
    37. color: white;
    38. display: none;
    39. line-height: 2;
    40. }
    41. #right_fixed span{
    42. display: block;
    43. height: 80px;
    44. text-align: center;
    45. line-height: 80px;
    46. font-size: 20px;
    47. cursor: pointer;
    48. transition: 0.2s;
    49. }
    50. .map1{
    51. width: 70%;
    52. margin: 20px;
    53. height: 400px;
    54. }
    55. .bai{
    56. color: white;
    57. background: black;
    58. }
    59. style>
    60. <script>
    61. let flag = true
    62. $(function () {
    63. let conTop = $('#content').offset().top
    64. function where(){
    65. if ($(document).scrollTop() >= conTop){
    66. $('p,#right_fixed').fadeIn()
    67. }else {
    68. $('p,#right_fixed').fadeOut()
    69. }
    70. }
    71. $(window).scroll(function () {
    72. where()
    73. if (flag){
    74. $('.map1').each(function (i,ele) {
    75. if ($(document).scrollTop() >= $(ele).offset().top){
    76. $('#right_fixed span').eq(i).addClass('bai').siblings().removeClass('bai')
    77. }
    78. })
    79. }
    80. })
    81. $('p').click(function () {
    82. $('html,body').animate({
    83. scrollTop:0
    84. })
    85. })
    86. $('#right_fixed span').click(function () {
    87. flag = false
    88. let dtan = $('.map1').eq($(this).index()).offset().top;
    89. $('html,body').stop().animate({
    90. scrollTop: dtan
    91. },function () {
    92. flag = true
    93. })
    94. $(this).addClass('bai').siblings().removeClass('bai')
    95. })
    96. })
    97. script>
    98. head>
    99. <body>
    100. <div id="header">div>
    101. <div id="banner">div>
    102. <div id="content">
    103. 滚动的不是document文档 而是html 和 body 元素 <br>
    104. 节流阀原理:
    105. 定义一个变量为true 点击后为false
    106. 一般再通过回调函数改回来
    107. <div class="map1" style="background: #1e75d8">div>
    108. <div class="map1" style="background: #ff3355">div>
    109. <div class="map1" style="background: #ff8200">div>
    110. <div class="map1" style="background: #0dbb5b">div>
    111. div>
    112. <div id="right_fixed">
    113. <span class="bai">1span>
    114. <span>2span>
    115. <span>3span>
    116. <span>4span>
    117. <p>返回顶部p>
    118. div>
    119. <script>
    120. /** 原生 JS
    121. let gen = document.documentElement,// doc 包含 html 根元素
    122. banner = document.querySelector('#banner'),
    123. p = document.querySelector('#right_fixed p'),
    124. rrr = document.querySelector('#right_fixed'),
    125. rrrTop = rrr.offsetTop,
    126. bannerTop = banner.offsetTop;
    127. document.addEventListener('scroll',function () {
    128. if (window.pageYOffset > bannerTop){
    129. p.style.display = 'block'
    130. rrr.style.position = 'fixed'
    131. rrr.style.top = (rrrTop - bannerTop) + 'px'
    132. }else {
    133. p.style.display = 'none'
    134. rrr.style.position = 'absolute'
    135. rrr.style.top = '700px'
    136. }
    137. })
    138. p.addEventListener('click',function () {
    139. goTop(window,0)
    140. })
    141. let btn = document.querySelector("button")
    142. btn.onclick = function () {
    143. document.querySelector('#content').scrollIntoView({
    144. behavior: "smooth", // 定义动画过渡效果, "auto"或 "smooth" 之一。默认为 "auto"
    145. block: "start", // 定义垂直方向的对齐, "start", "center", "end", 或 "nearest"之一。默认为 "start"
    146. inline: "nearest" // 定义水平方向的对齐, "start", "center", "end", 或 "nearest"之一。默认为 "nearest"
    147. })
    148. }
    149. // 返回顶部的函数
    150. function goTop(obj,num,callback) {
    151. clearInterval(obj.timeOut) // 清除以前的定时器 只保留一个定时器执行
    152. obj.timeOut = setInterval(function () {
    153. let step = (num - window.pageYOffset) / 10
    154. // 取整 三元表达式 步长取为整数 正数就往大了取 负数就往小了取
    155. step = step > 0 ? Math.ceil(step) : Math.floor(step)
    156. if (window.pageYOffset == num){
    157. clearInterval(obj.timeOut)
    158. // if (callback){
    159. // callback()
    160. // }
    161. callback && callback()
    162. }
    163. window.scroll(0,window.pageYOffset + step)
    164. },15)
    165. }**/
    166. script>
    167. body>
    168. html>

  • 相关阅读:
    无法将RELEASE.pom上传到nexus的解决办法
    nginx部署web项目(跟着搞不出来,来砍我)
    【软件安装】ubuntu+CGAL+QT可视化+draw_triangulation_2+draw_triangulation_3
    真菌基因组研究高分策略(一):比较基因组揭示真菌菌丝和多细胞的起源
    搜题公众号搜题功能系统搭建教程
    DJYOS驱动开发系列一:基于DJYOS的UART驱动编写指导手册
    【C语言】模拟实现内存函数
    vue2引入wangEditor5富文本编辑器
    8月23日计算机视觉理论学习笔记——图像检索
    【8. 调度算法】
  • 原文地址:https://blog.csdn.net/benlalagang/article/details/126194551