首页 > 其他分享 >自适应高度的过渡

自适应高度的过渡

时间:2024-01-24 17:33:07浏览次数:19  
标签:box style querySelector text 高度 height 适应 tag 过渡

点击查看代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .box {
        width: 300px;
        margin: auto;
        overflow: hidden;
        background-color: palegreen;
        transition: 0.3s;
      }
      .box-item {
        line-height: 40px;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <button class="operate-button">折叠</button>
    <button class="add-button">追加</button>
    <div class="box">
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
      <div class="box-item">this is a text this is a text</div>
    </div>

    <script>
      let operateButton = document.querySelector(".operate-button");
      let addButton = document.querySelector(".add-button");
      let box = document.querySelector(".box");
      let tag = false;
      //   监听过渡执行完毕
      box.addEventListener("transitionend", () => {
        console.log(tag);
        if (!tag) {
          box.style.removeProperty("height");
        }
      });
      operateButton.addEventListener("click", () => {
        if (tag) {
          box.style.height = "auto";
          const height = box.offsetHeight;
          box.style.height = 0;
          //下次重绘(下一帧)执行
          requestAnimationFrame(() => {
            box.style.height = height + "px";
          });
          operateButton.textContent = "折叠";
        } else {
          const height = box.offsetHeight;
          box.style.height = height + "px";
           //下次(下一帧)重绘执行
          requestAnimationFrame(() => {
            box.style.height = 0;
          });
          operateButton.textContent = "展开";
        }
        tag = !tag;
      });

      addButton.addEventListener("click", () => {
        const cloneLiItem = document.querySelector(".box-item").cloneNode(true);
        box.appendChild(cloneLiItem);
      });
    </script>
  </body>
</html>

标签:box,style,querySelector,text,高度,height,适应,tag,过渡
From: https://www.cnblogs.com/zsnhweb/p/17985194

相关文章

  • 微信小程序高度适配
    参考文章【微信小程序:用rpx和wx.getSystemInfoSync()来适配屏幕高度-CSDN博客】1.小程序的任何机型的宽度固定为750rpx;为了适配不同设备的高度可以通过下面的公式转化750/设备宽度=屏幕设置高度/设备高度所以自适应屏幕应该设置的高度=750*设备高度/设备宽度2.获取设备信......
  • 详解static关键字在Java中的各种适应场景,这个很重要!
    写在开头静态(static)关键字在Java的众多关键字中举足轻重!也是很多大厂面试官特别喜欢问的面试高频知识点,今天我们就一起学习,梳理,重温一下这个关键吧,之所以用重温修饰是因为在过往的文章中早已提到了static,无论是变量中还是方法中甚至于类中,static都是不可或缺的!我们知道要想调用......
  • 【秀米教程9】制作专属秀米模板,更加适应你的工作内容
    你是否想在秀米中拥有自己的专属模板呢?你是否想更快捷的完成工作然后摸鱼呢?你是否经常用一些特定的模板呢?一起来看看......
  • Flutter计算文本高度
    在开发中我们需要去计算文本的高度,从来去设置控件的高度,在flutter中我们可以使用TextPainter来计算文本高度//获取文字高度text:文字内容fontSize:字体大小fontWeight:字重height:行高maxWidth:最大宽度,maxLines:最大行数staticdoublegetTextContextSizeHeight(String......
  • 采用rem网页自适应背景也自适应
    采用rem网页自适应背景也自适应,设置background-size 属性background-size 属性规定背景图像的尺寸div{background:url(img_flwr.gif);background-size:1rem1rem;background-repeat:no-repeat;}CSS语法background-size:length|percentage|cover|contain;属性......
  • latex强大排版能力体现,多根号高度的联动调整
    简单根号内容:$\sqrt{2x^2*\frac{1}{3a}}$\\复杂根号内容:$\sqrt{2x^2}\sqrt{\frac{1}{3a}}$\\%明显看出多根号情形下,根号的这种调整是无能为力的,借助命令vphantom,使得对象占据本身的高度宽度为零\\复杂根号内容:$\sqrt{\vphantom{\frac{1}{3a}}2x^2}\sqrt{\frac{1}{3a}}......
  • js自动缩放页面自适应屏幕分辨率
    1.简单版:s=window.screen.width/1920;document.body.style.zoom=s;2. 当开发前端页面在分辨率1920的情况下,需要切换到小屏,有种方法是可以对屏幕比例进行缩放,通过css3属性transform可以自适应屏幕分辨率大小vars;functionresize(){s=window.screen.width......
  • vue3使用 vant ui 3 如何获取组件 popup dom的高度?
    我目前使用的是vant-ui 3.1.2popup弹出层组件,我想要获取弹出层的高度来计算一些东西,但是使用常规定义refdom的方式总是无法获取,最终找到方案如下:vant-ui官方文档:https://vant-contrib.gitee.io/vant/v3/#/zh-CN/popup<template><van-popupv-model:show="show......
  • MYSQL的B+Tree索引树高度如何计算
    前一段被问到一个平时没有关注到有关于MYSQL索引相关的问题点,被问到一个表有3000万记录,假如有一列占8位字节的字段,根据这一列建索引的话索引树的高度是多少?这一问当时就被问蒙了,平时这也只关注MySQL索引一般都是都是用B+Tree来存储维护索引的,还有一些复合索引的最左匹配原则等等,......
  • css滑动门效果,文字两侧背景花纹自适应
    css滑动门效果:不同长度的文字,两侧的背景图案一致,如下图所示。效果预览:素材图片:t2.jpg源代码如下:<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge">......