<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
    body {
      margin: 0;
      padding: 20px;
      font-family: Arial, sans-serif;
      transition: background-color 0.3s ease;
    }
    .file-drop {
      border: 2px dashed #ccc;
      padding: 20px;
      text-align: center;
      cursor: pointer;
    }
    .file-drop:hover {
      background-color: #f0f0f0;
    }
    .file-list {
      margin-top: 20px;
    }
    .file-list ul {
      list-style-type: none;
      padding: 0;
    }
    .file-list li {
      margin-bottom: 5px;
    }
  </style>
</head>
<body>
  <div id="app">
    <div class="file-drop" v-if="!file">
      <p>拖拽单个文件到这里 (仅限 .jpg 和 .png 文件)</p>
    </div>
    <div class="file-list" v-else>
      <ul>
        <li>
          {{ file.name }} ({{ file.size }} bytes)
        </li>
      </ul>
    </div>
  </div>
  <!-- 引入 Vue 2 CDN -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue@2.6.1-dev.js"></script>
  <script>
    new Vue({
      el: '#app',
      data() {
        return {
          file: null
        };
      },
      methods: {
        handleDragOver(event) {
          event.preventDefault();
          document.body.style.backgroundColor = '#e0f7fa'; // 拖动时改变背景颜色
        },
        handleDragLeave() {
          document.body.style.backgroundColor = ''; // 拖动离开时恢复背景颜色
        },
        handleDrop(event) {
          event.preventDefault();
          document.body.style.backgroundColor = ''; // 放开时恢复背景颜色
          const files = event.dataTransfer.files;
          if (files.length === 1) {
            const file = files[0];
            const allowedTypes = ['image/jpeg', 'image/png'];
            if (allowedTypes.includes(file.type)) {
              this.file = file;
            } else {
              alert('只能拖拽 .jpg 和 .png 文件');
            }
          } else {
            alert('只能拖拽单个文件');
          }
        }
      },
      mounted() {
        document.body.addEventListener('dragover', this.handleDragOver);
        document.body.addEventListener('dragleave', this.handleDragLeave);
        document.body.addEventListener('drop', this.handleDrop);
      },
      beforeDestroy() {
        document.body.removeEventListener('dragover', this.handleDragOver);
        document.body.removeEventListener('dragleave', this.handleDragLeave);
        document.body.removeEventListener('drop', this.handleDrop);
      }
    });
  </script>
</body>
</html>					网友回复
- threejs如何做个三维搭积木的游戏?
- three如何实现标记多个起始路过地点位置后选择旅行工具(飞机汽车高铁等),最后三维模拟行驶动画导出mp4?
- ai实时驱动的3d数字人可视频聊天的开源技术有吗
- swoole+phpfpm如何实现不同域名指向不同目录的多租户模式?
- 如何用go替换nginx实现请求phpfpm解析运行php脚本?
- 有没有浏览器离线运行进行各种文档、图片、视频格式转换的开源工具?
- 如何使用go语言搭建一个web防火墙?
- linux如何检测特定网络协议比如http协议中报文是否包含特点关键词并阻止返回给客户?
- 如果在nginx外过滤包含某些关键词的网页并阻止打开?
- 程序员怎么做副业赚钱?



 
				 
			 
			 
				 
			