zoukankan      html  css  js  c++  java
  • vue中引入单张图片+两张壁纸手动切换

    0.问题

    我真的是无语了

    想做个多张壁纸切换着玩的组件,结果卡在多张图片上,麻了真的麻了

    1.单张图片引入的方式

    1.1 import

    import imgSrc1 from "@/assets/bg1.jpg";
     可行,而且不用写很长的地址

    1.2 require

    bg3图片我放在了同级文件夹下,放上一级同级件夹下也可以,但是放上上一级的就不可以(我特么???)
    *** 2021-11-26补充说明,文件位置变化: ./同级 ../上一级 ../../ 上上级 ***
     
    效果如图

     1.3 在CSS样式里面写

    .background {
       100%;
      height: 100%; /**宽高100%是为了图片铺满屏幕 */
      z-index: -1;
      position: absolute;
      background-image: url("./bg3.jpg");
      background-repeat: no-repeat;
      // 居中↓
      // background: url("bg3.jpg") no-repeat fixed center;
    }

    注:只能写两级或者同级的!!!和上面一个require一样的诡异情况

    效果如图

     2.两张背景图切换效果

    老规矩先上代码

    <template>
      <div class="background">
        <img
          :src="bgNum ? imgSrc1 : imgSrc2"
          width="100%"
          height="100%"
          alt=""
          style="-webkit-user-drag: none"
        />
        <el-button class="changeBtn" @click="changeBg"
          >切换背景{{ bgNum + 1 }}/2</el-button
        >
      </div>
    </template>
    

    <script>
    import imgSrc1 from
    "@/assets/bg1.jpg";
    import imgSrc2 from
    "@/assets/bg2.jpg";

    export default {
    data() {
    return {
    bgNum:
    0,
    imgSrc1: imgSrc1,
    imgSrc2: imgSrc2,
    };
    },
    methods: {
    changeBg() {
    this.bgNum++;
    this.bgNum = this.bgNum % 2;
    console.log(
    "Now img ", this.bgNum);
    },
    },
    };
    </script>

    <style lang="scss" scoped>
    .background {
    100%;
    height:
    100%; /宽高100%是为了图片铺满屏幕 */
    z
    -index: -1;
    position: absolute;
    }
    .changeBtn {
    position: relative;
    float: right;
    bottom: 55px;
    right: 11px;
    }
    </style>

    View Code

    效果如图

    3.不足

    到底怎么插入多张图片啊卧槽啊!!!!!!!!!!!!!!!!!!

    怎么多张壁纸切换啊卧槽啊!!!!!!!!!!!!!!!!!!!

    除了Import就没有更优雅的写法了嘛卧槽啊!!!!!!!!!!!!!

    *** 2021-11-26更新 ***

    4.更新之多张图片引入

    放图片的控件adBox (开启ADGRAND类似防广告浏览器插件记得关闭)
    image
    data中引入图片
    image
    根据clickNum切换对应图片组
    image
    adBox具体内容

    <template>
      <div class="adBox">
        <div class="linear">
          <span class="leftText">{{ adTitle }}</span>
          <span class="rightText">更多</span>
        </div>
        <br />
        <div class="imgBox">
          <img :src="adArr[0]" alt="ad" />
          <img :src="adArr[1]" alt="ad" />
          <img :src="adArr[2]" alt="ad" />
          <img :src="adArr[3]" alt="ad" />
          <img :src="adArr[4]" alt="ad" />
        </div>
      </div>
    </template>
    
    <script>
    export default {
      props: ["adArr", "adTitle"],
    };
    </script>
    
    <style lang="scss" scoped>
    .adBox {
      //  93%;
      padding-bottom: 10px;
      // border: 1px solid white;
      margin: 20px;
      background-color: #011f38;
      .linear {
        background-image: linear-gradient(to right, #013857, #001d34);
        display: flex;
        justify-content: space-between;
        align-items: center;
        span {
          font-size: 20px;
          margin-top: 10px;
        }
        .leftText {
          font-size: 22px;
          margin-bottom: 10px;
          margin-left: 20px;
        }
        .rightText {
          color: #27aae0;
          float: right;
          position: relative;
          margin-top: -3px;
          margin-right: 10px;
        }
      }
    
      .imgBox {
        // margin:10px 20px;
        display: flex;
        justify-content: space-evenly;
        img {
           18%;
          // margin-left: ;
        }
      }
    }
    </style>
    

    低版本的可能需要将图片存放在static下的images文件夹中,注意打印跨组件后的图片地址指向何处。

    人生到处知何似,应似飞鸿踏雪泥。
  • 相关阅读:
    django入门系列 -表单视图
    django学习 -模型层初体验
    python 元组与list的区别
    解决容器内部无法访问宿主机端口的问题
    记一次pyccharm Terminal django 执行 python migrate 无法生成新的数据表的报错过程
    ES学习之ES语法入门
    docker seleniumgrid 问题解决
    selenium的Grid方式遇到 1 requests waiting for a slot to be free. 问题
    js写的ajax
    ajax jQ写的上传进度条
  • 原文地址:https://www.cnblogs.com/lepanyou/p/15218006.html
Copyright © 2011-2022 走看看