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>

     效果图:

  • 相关阅读:
    不同进程间消息互发
    不同进程间消息互发
    div滤镜结合ajax,实现登录
    网页自适应不同浏览器和分辨率[转]
    DIV样式汇总
    用CSS中的Alpha实现渐变
    JavaScript中的null和undefined
    CSS教程:div垂直居中的N种方法[转]
    浏览器不兼容原因及解决办法
    JavaScript验证时间格式
  • 原文地址:https://www.cnblogs.com/yesyes/p/6689082.html
Copyright © 2011-2022 走看看