本文實例為大家分享了vue點擊圖片放大展示的具體代碼,供大家參考,具體內容如下
1.建立子組件,來實現圖片方法功能: BigImg.vue
<template>  <!-- 過渡動畫 -->  <transition name="fade">     <div class="img-view" @click="bigImg">       <!-- 遮罩層 -->       <div class="img-layer"></div>       <div class="img">         <img :src="imgSrc">       </div>    </div>  </transition></template><script>  export default {    props: ['imgSrc'],//接受圖片地址    methods: {      bigImg() {      // 發送事件        this.$emit('clickit')      }    }  }</script><style scoped>  /*動畫*/  .fade-enter-active,  .fade-leave-active {    transition: all .2s linear;    transform: translate3D(0, 0, 0);  }  .fade-enter,  .fade-leave-active {    transform: translate3D(100%, 0, 0);  }   /* bigimg */  .img-view {    position: inherit;    width: 100%;    height: 100%;  }  /*遮罩層樣式*/  .img-view .img-layer {    position: fixed;    z-index: 999;    top: 0;    left: 0;    background: rgba(0, 0, 0, 0.7);    width: 100%;    height: 100%;    overflow: hidden;  }  /*不限制圖片大小,實現居中*/  .img-view .img img {    max-width: 100%;    display: block;    position: absolute;    left: 0;    right: 0;    margin: auto;    z-index: 1000;  }</style>2.在父類中使用子組件:
<template xmlns:v-on="http://www.w3.org/1999/xhtml">  <div class="contents">    <div class="group">      <div class="special">        <span v-text="pagedata.subtitle"></span>      </div>      <span class="text-muted" v-text="pagedata.headline"></span>      <div class="group_img">        <!-- 放大圖片 -->        <big-img v-if="showImg" @clickit="viewImg" :imgSrc="imgSrc"></big-img>           <div class="text" v-text="pagedata.article"></div>        <img id="smallImg" :src="pagedata.imgurl" @click="clickImg($event)">      </div>    </div>  </div></template> <script>import BigImg from '../../index/moduleStyles/BigImg.vue';export default {  data () {    return {      showImg:false,      imgSrc: ''    }  },  props: ['pagedata'],  computed: {},  components: { 'big-img':BigImg},  methods: {    clickImg(e) {      this.showImg = true;      // 獲取當前圖片地址      this.imgSrc = e.currentTarget.src;    },    viewImg(){      this.showImg = false;    },  },  watch: {},}</script><style></style>以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答