zoukankan      html  css  js  c++  java
  • vue实现图片点击放大

    用的vue-cli开发的项目,下面是具体实现代码

    子组件:

    <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: relative;
        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>

    父组件:

    <template>
        <div>
            <img :src="demo.png" @click="clickImg($event)">
            <!-- 放大图片 -->
            <big-img v-if="showImg" @clickit="viewImg" :imgSrc="imgSrc"></big-img>
        </div>
    </template>
    
    <script>
    import BigImg from '../global/BigImg.vue';
        export default {
            data() {
                return {        
                    showImg:false,
                    imgSrc: ''
                }
            },
            components: {
                'big-img':BigImg
            },
            methods: {
                clickImg(e) {
                    this.showImg = true;
                    // 获取当前图片地址
                    this.imgSrc = e.currentTarget.src;
                },
                viewImg(){
                    this.showImg = false;
                },
            }
        }
    </script>

     效果图:

  • 相关阅读:
    postman-3http请求
    postman-2get发送请求
    postman-1版本区别、选择
    mysql-13处理重复数据
    mysql-12序列使用
    mysql-11元数据
    mysql-10临时表、复制表
    10)global预定义变量
    9)用request方式
    8)post方式提交和简单那处理
  • 原文地址:https://www.cnblogs.com/yesyes/p/6689082.html
Copyright © 2011-2022 走看看