jQuery-jQuery元素尺寸&offset,position&筛选

jQuery

CSS

  • 设置css样式/读取css值
    css()

    <p style="color: blue;">尚硅谷的后裔</p>
    <p style="color: green;">太阳的后裔</p>
    
  • 1.得到第一个p标签的颜色

    console.log($('p:first').css('color'));//rgb(0, 0, 255)
    
  • 2.设置所有p标签的文本颜色为red

    $('p').css('color','red');
    
  • 3.设置第2个p的字体颜色(#ff0011),背景(blue),宽(300px), 高(30px)

    $('p:eq(1)').css({
      color: '#ff0011',
      background : 'blue',
      width: 300,
      height: 30
    });
    

offset和position

                <div class="div1">
                  <div class="div2">测试offset</div>
                </div>

                <div class='div3'>
                  <button id="btn1">读取offset和position</button>
                  <button id="btn2">设置offset</button>
                </div>
  • 在这里插入图片描述

  • 获取/设置标签的位置数据

    • offset(): 相对页面左上角的坐标

      • $('#btn1').click(function(){
         //打印 div1 相对于页面左上角的位置
          var offset=$('.div1').offset();
          console.log(offset.left,offset.top);//10 20
         // 打印 div2 相对于页面左上角的位置
          offset=$('.div2').offset();
          console.log(offset.left,offset.top);//10 70
          //打印 div1 相对于父元素左上角的位置
          var position=$('.div1').position();
          console.log(position.left,position.top);//10 20
          //打印 div2 相对于父元素左上角的位置
          position=$('.div2').position();
          console.log(position.left,position.top);//0 50
        });
        
    • position(): 相对于父元素左上角的坐标

      • $('#btn2').click(function () {
          $('.div2').offset({
            left:50,
            top:100
          });
        });
        

scroll

        <div style="border:1px solid black;width:100px;height:150px;overflow:auto">
          This is some text. This is some text. This is some text. This is some text.
          This is some text. This is some text. This is some text. This is some text.
          This is some text. This is some text. This is some text. This is some text.
          This is some text. This is some text. This is some text. This is some text.
          This is some text. This is some text. This is some text. This is some text.
          This is some text. This is some text. This is some text. This is some text.
          his is some text.
        </div>
        <br>
        <br>
        <br>
        <button id="btn1">得到scrollTop</button>
        <button id="btn2">设置scrollTop</button>

在这里插入图片描述

  • 1.scrollTop(): 读取/设置滚动条的Y坐标

  • 2.$(document.body).scrollTop()+$(document.documentElement).scrollTop()
    读取页面滚动条的Y坐标(兼容chrome和IE)

  • 3.$(‘body,html’).scrollTop(60);
    滚动到指定位置(兼容chrome和IE)

    /*
     需求:
     1. 得到div或页面滚动条的坐标
     */
      $('#btn1').click(function(){
        console.log($('div').scrollTop());//0
        console.log($(document.body).scrollTop()+$(document.documentElement).scrollTop());
        //document.body支持IE Edge 不支持Chrome和FireFox
        //document.documentElement支持Chrome和FireFox 不支持IE Edge
      });
    /*
       2. 让div或页面的滚动条滚动到指定位置
       */
      $('#btn2').click(function(){
        $('div').scrollTop(200);
        $('html,body').scrollTop(300)
      });
    

效果:回到顶部

		[

            $('#to_top').click(function(){
              //瞬间回到顶部
             // $('html,body').scrollTop(0);
              var $page=$('html,body');
              var distance=$('html').scrollTop()+$('body').scrollTop();
              var time=500;//500毫秒  总时间
              var intervalTime =50; //间隔时间
              var itemDistance=distance/(time/intervalTime);
              //使用循环定时器不断滚动
              var intervalid=setInterval(function () {
                  distance-=itemDistance;
                  //到达顶部,停止定时器
                if(distance<=0){
                  distance=0;//修正
                  clearInterval(intervalid);
                }
                  $page.scrollTop(distance);
              },intervalTime);
            });

元素的尺寸

在这里插入图片描述

  • 1.内容尺寸
    height(): height
    width(): width

  • 2.内部尺寸
    innerHeight(): height+padding
    innerWidth(): width+padding

  • 3.外部尺寸
    outerHeight(false/true): height+padding+border 如果是true, 加上margin
    outerWidth(false/true): width+padding+border 如果是true, 加上margin

      var $div=$('div');
      //1.内容尺寸
      console.log($div.width(),$div.height());//100 150
      //2.内部尺寸
      console.log($div.innerWidth(),$div.innerHeight());//120 170
      //3.外部尺寸
      console.log($div.outerWidth(),$div.outerHeight());//140 190
      console.log($div.outerWidth(true),$div.outerHeight(true));//160 210
    

删选_过滤

            <ul>
              <li>AAAAA</li>
              <li title="hello" class="box2">BBBBB</li>
              <li class="box">CCCCC</li>
              <li title="hello">DDDDDD</li>
              <li title="two"><span>BBBBB</span></li>
            </ul>
            <li>eeeee</li>
            <li>EEEEE</li>

在jQuery对象中的元素对象数组中过滤出一部分元素来

var $lis=$('ul>li');

  1. first()

    /*
     需求:
     1. ul下li标签第一个
     */
    $lis.first().css('background','red');//$lis.first()-->jQuery对象
    $lis[0].style.background='red';//$lis[0]-->dom对象
    
  2. last()

    /*
     2. ul下li标签的最后一个
     */
     $lis.last().css('background','red');
    
  3. eq(index|-index)

    /*
     3. ul下li标签的第二个
     */
    $lis.eq(1).css('background','red');
    
  4. filter(selector)

    /*
     4. ul下li标签中title属性为hello的
     */
     $lis.filter('[title=hello]').css('background','blue');
    
  5. not(selector)

    /*
     5. ul下li标签中title属性不为hello的
     */
      $lis.not('[title=hello]').css('background','yellow');
      $lis.filter('[title!=hello').css('background','yellow');
      /*
      6.ul下li标签有title属性但是title属性不为hello
      */
      $lis.filter('[title]').not('[title=hello]').css('background','red');
      $lis.filter('[title][title!=hello]').css('background','red');
      $lis.filter('[title!=hello]').filter('[title]').css('background','red');
    
  6. has(selector)

    /*
    7.. ul下li标签中有span子标签的
    */
     $lis.has('span').css('background','black');
    

筛选_查找孩子-父母-兄弟标签

            <div>
              <ul>
                <span>span文本1</span>
                <li>AAAAA</li>
                <li title="hello" class="box2">BBBBB</li>
                <li class="box" id='cc'>CCCCC</li>
                <li title="hello">DDDDDD</li>
                <li title="two"><span>span文本2</span></li>
                <span>span文本3</span>
              </ul>
              <span>span文本444</span><br>
              <li>eeeee</li>
              <li>EEEEE</li>
              <br>
            </div>

在已经匹配出的元素集合中根据选择器查找孩子/父母/兄弟标签

var $ul=$('ul');

  1. children(): 子标签中找

    /*
     需求:
     1. ul标签的第2个span子标签
     */
    $ul.children('span:eq(1)').css('background','red');
    
  2. find() : 后代标签中找

    /*
     2. ul标签的第2个span后代标签
     */
     $ul.find('span:eq(1)').css('background','red');
    
  3. parent() : 父标签

    /*
     3. ul标签的父标签
     */
     $ul.parent().css('background','red');
    
  4. prevAll() : 前面所有的兄弟标签

    /*
     4. id为cc的li标签的前面的所有li标签
     */
    var $li=$('#cc');
    $li.prevAll('li').css('background','red');
    
  5. nextAll() : 后面所有的兄弟标签

    /*
     5. id为cc的li标签的后面的兄弟li标签
     */
    $li.nextAll('li').css('background','red');
    
  6. siblings() : 前后所有的兄弟标签

    /*
     6. id为cc的li标签的所有兄弟li标签
     */
    $li.siblings('li').css('background','red');
     */
    var $li=$('#cc');
    $li.prevAll('li').css('background','red');
    
  7. nextAll() : 后面所有的兄弟标签

    /*
     5. id为cc的li标签的后面的兄弟li标签
     */
    $li.nextAll('li').css('background','red');
    
  8. siblings() : 前后所有的兄弟标签

    /*
     6. id为cc的li标签的所有兄弟li标签
     */
    $li.siblings('li').css('background','red');
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值