zoukankan      html  css  js  c++  java
  • 元素内容和背景同比缩放

    -

    最近做一个自适应页面,有个需求是背景和内容同比缩放(由于背景图比较特殊,如果发生偏移会很明显),所以写了一个dom内容和父级背景同比缩放的方法;

     随着浏览器宽度变化,背景图也跟着缩放,内容也跟着缩放;

    思路:

    当前窗口宽度与设计稿宽度相除 得出 缩放比;

    根据缩放比缩放元素内容;

    用到定位的话,需要把 top和left值同样缩放

    封装成vue(3)指令

    const setPosition = {
      mounted(el,bingding){
        let { draftWidth, top, left } = bingding.value;
    
        el.scaleRtio = window.innerWidth / draftWidth;
    
        el.setPositionFun = (scaleRtio,top,left) => {
          el.style.transformOrigin = `top left`;
          el.style.top = `${ scaleRtio * top }px`;
          el.style.left = `${ scaleRtio * left }px`;
          el.style.transform = ` scale(${ scaleRtio }`;
        }
    
        el.setPositionFun(el.scaleRtio, top, left);
    
        el.resize = e => {
          console.log(e,'e');
          el.scaleRtio = e.target.innerWidth / draftWidth;
          el.setPositionFun(el.scaleRtio, top, left);
        }
        window.addEventListener('resize',el.resize)
      },
      updated(){
        console.log('更新');
      },
      unmounted(el){
        window.removeEventListener('resize',el.resize);
        el.resize = null;
        el.scaleRtio = null;
        el.setPositionFun = null;
      }
    }

    使用:

    <div class="innerBox" v-setPosition="{draftWidth:1200,top:20,left:60}">dasdsa</div>

    -

  • 相关阅读:
    Hibernate(十三)迫切内连接fetch
    SQL多表联合查询(交叉连接,内连接,外连接)
    Hibernate入门(十二)离线条件检索
    Java基础IO流(二)字节流小案例
    Java基础IO流(一)
    Hibernate入门(十一)多对多案例
    mysql下载安装及常见问题
    数据库表数据恢复
    linux的自有(内置)服务
    linux下的别名机制
  • 原文地址:https://www.cnblogs.com/fqh123/p/15452254.html
Copyright © 2011-2022 走看看