闲碎记事本 闲碎记事本
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YAN

我要偷偷记录...
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • python

  • vue

    • 开始vue
    • upload自定义文件上传
    • js
    • H5

    • C

    • 学习
    • vue
    YAN
    2022-03-06
    目录

    js

    # 定时器

    getBoundingClientRect():告诉你元素在视口中的几何位置,方便做定位、碰撞检测等。 getComputedStyle():告诉你元素实际应用的样式值,方便获取px值或其他值(比如padding、border宽度)。

    const rect = element.getBoundingClientRect();
    console.log(rect.top, rect.left, rect.width, rect.height);
    
    const style = getComputedStyle(element);
    console.log(style.paddingTop); // "10px"
    console.log(style.width);      // "100px"
    

    ::: 铺满窗口示例

    <template>
      <div class="app-container" ref="appContainer">
          <el-card class="app-panel">
    
          </el-card>
      </div>
    </template>
    
    <style scoped>
    .app-panel{
      height: var(--app-top-offset);
    }
    
    </style>
    
    <script>
    
    export default {
      name: "TEST",
      data() {
    
        };
      },
      mounted() {
        this.setTabsHeight(); // 页面加载时计算高度
        window.addEventListener("resize", this.setTabsHeight); // 监听窗口大小变化
      },
      beforeDestroy() {
        window.removeEventListener("resize", this.setTabsHeight); // 组件销毁时移除监听器
      },
      methods: {
        setTabsHeight() {
          //得到浏览器视口高度:window.innerHeight
          //得到 appContainer 的 margin top
          const tabsHeight = window.innerHeight - this.$refs.appContainer.getBoundingClientRect().top;
          //得到 appContainer 的所有经过计算后的实际样式值
          const style = window.getComputedStyle(this.$refs.appContainer);
          //得到 appContainer 的panningBottom 和 panningTop
          const panelHeight = tabsHeight-parseFloat(style.paddingTop)-parseFloat(style.paddingBottom)
          // 通过style.setProperty设置CSS变量
          document.documentElement.style.setProperty('--app-top-offset', `${panelHeight}px`);
        },
      },
    };
    </script>
    
    
    

    :::

    # 定时器

    setInterval(()=>{
        let message = "开始学习了!" + new Date().toString()
        console.log(message)
    },1000)
    

    # Object.defineProperties 双向绑定原理

        let age= 19
        let  person =  {
            name:"小米",
            sex:"女",
        }
    
        console.log(person)
        Object.defineProperties(person,{
            age: {
                get() {
                    console.log("得到年龄");
                    return age;
                },
                set(val) {
                    console.log("年龄变化");
                    age = val;
                }
            }
        })
    
    
    上次更新: 2025/05/22, 07:52:48
    upload自定义文件上传
    常用标签

    ← upload自定义文件上传 常用标签→

    最近更新
    01
    Caddy操作指南
    04-25
    02
    虚拟机磁盘扩展
    04-22
    03
    Swap空间
    04-22
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 YAN | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式