zoukankan      html  css  js  c++  java
  • Vue练习四十:05_05_跟随鼠标移动-展示大图

    Demo 在线地址:
    https://sx00xs.github.io/test/40/index.html
    ---------------------------------------------------------------
    ide: vscode
    文件格式:.vue
    解析:(待补)

    <template>
        <div>
            <div class="box">
                <ul>
                    <li v-for="(item,index) in lists" :key="item.src" :class="{active:item.isActive}"
                    @mouseover="handleOver(item,index)"
                    @mousemove="handleMove"
                    @mouseout="handleOut"
                    >
                        <img :src="item.src">
                    </li>
                </ul>
            </div>
            <div class="big"  v-show="show" ref="myBig">
                <div v-show="bigShow"></div>            
            </div>
        </div>
    </template>
    <script>
    export default {
        name:'Navs',
        data(){
            return{
                show:false,
                bigShow:false,            
                lists:[
                    {src:require('../assets/lesson5/shirt_1.jpg'), isActive:false},
                    {src:require('../assets/lesson5/shirt_2.jpg'), isActive:false},
                    {src:require('../assets/lesson5/shirt_3.jpg'), isActive:false},
                    {src:require('../assets/lesson5/shirt_4.jpg'), isActive:false},
                ],
                bigList:[
                    {src:require('../assets/lesson5/shirt_1_big.jpg')},
                    {src:require('../assets/lesson5/shirt_2_big.jpg')},
                    {src:require('../assets/lesson5/shirt_3_big.jpg')},
                    {src:require('../assets/lesson5/shirt_4_big.jpg')},
                ]
            }
        },    
        methods:{
            handleOver(item,index){
                var oImg=document.createElement('img');
                var img= new Image();
                img.src=oImg.src=this.bigList[index].src;
                this.$refs.myBig.appendChild(oImg);
                this.lists[index].isActive=true;
                this.show=this.bigShow=true;
                img.complete ? this.bigShow=false : ''
            },
            handleMove(){
                var newWidth= document.documentElement.offsetWidth - event.clientX;
                this.$refs.myBig.style.top=event.clientY + 20 + 'px';
                this.$refs.myBig.style.left = (newWidth < this.$refs.myBig.offsetWidth + 10 ? event.clientX - this.$refs.myBig.offsetWidth - 10 : event.clientX + 10) + 'px';
            },
            handleOut(){
                this.show=false;
                this.$refs.myBig.removeChild(this.$refs.myBig.lastChild)
            }
        }
    }
    </script>
  • 相关阅读:
    Seaslog高性能日志系统学习
    同步、异步与阻塞、非阻塞、协程
    SQL常用增删改查语句
    js里的document对象大全(DOM操作)
    php的cURL资源的初步使用
    hive学习笔记(初级)
    使用NSIS制作可执行程序的安装包
    C#设置一个控件可以鼠标拖动
    C#画图超出屏幕的部分无法显示的解决方法
    C#获取当前不同网卡对应的iP
  • 原文地址:https://www.cnblogs.com/sx00xs/p/11266244.html
Copyright © 2011-2022 走看看