vue 10*10切片图

1,首先我们使用ps对图片进行切片

2,水平和垂直方向都为10(做的是10*10)

3,点完存储后直接点击保存(注意:切片要是所有切片)

得到一个文件夹

4,在桌面新建一个文件夹,里面添加上HTML的四件套,将刚保存在桌面上的图片文件直接拖入。用VScode打开,写HTML样式。

5,在<script>标签中导入vue.js(没有的可以去官网:Vue.js (vuejs.org) ps:我主要学的是2.0)。

6,在<body>标签中写两个div,给其赋个样式content为最大盒子。这里不给高度,由display标签撑开

justify-content :在主轴上的对齐方式..... flex-wrap:进行换行操作。

7,自己定义一个组件化,组件化建好,在前面使用我们所定义的组件 使用v-for值得绑定

这里得“key="i"”不写可以运行,但会警告!

8,最后创建vue得实例 el:唯一的根标签,用来将页面结构与vue实例对象进行绑定。

9,复制一个图片的名称,在Excel中横拉到“100”。复制到记事本中,每一个名称之间的空格都是一样的距离,选中替换为","即可(注意:","为英文符号)。

效果图:

实现代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="js/vue.js"></script>
    <style>
        .concent{
            width: 530px;
            border: 1px solid black;
            margin: 0 auto;
            /* 弹性布局 */
            display: flex;
            justify-content: space-around;
            flex-wrap: wrap;
        }
        .item{
            height: 38px;
            width: 46px;
            background-color: #ccc;
            margin: 3px 3px;
        }
    </style>
</head>
<body>
    <div id="app">
        <div class="concent">
            <!-- 使用自定义组件 -->
            <test-div v-for = "i in imgs" :im="i" :key="i"></test-div>
        </div>
    </div>
    <template id="tempConcent" >
        <div class="item" @click="change">
            <img :src="im" v-show ="show">

        </div>
    </template>
    <script>
        Vue.component("test-div",{
            template:"#tempConcent",
            props:["im"],
            data:function(){
                return{
                    show:false,
                    img:"images/OIP-C_01.gif"
                }
            },
            methods:{
                change:function(){
                    this.show = !this.show;
                }
            }
        });
        var cm =new Vue({
            el:"#app",
            data:{
                imgs:["images/OIP-C_01.gif","images/OIP-C_02.gif","images/OIP-C_03.gif","images/OIP-C_04.gif","images/OIP-C_05.gif",
                "images/OIP-C_06.gif","images/OIP-C_07.gif","images/OIP-C_08.gif","images/OIP-C_09.gif","images/OIP-C_10.gif",
                "images/OIP-C_11.gif","images/OIP-C_12.gif","images/OIP-C_13.gif","images/OIP-C_14.gif","images/OIP-C_15.gif",
                "images/OIP-C_16.gif","images/OIP-C_17.gif","images/OIP-C_18.gif","images/OIP-C_19.gif","images/OIP-C_20.gif",
                "images/OIP-C_21.gif","images/OIP-C_22.gif","images/OIP-C_23.gif","images/OIP-C_24.gif","images/OIP-C_25.gif",
                "images/OIP-C_26.gif","images/OIP-C_27.gif","images/OIP-C_28.gif","images/OIP-C_29.gif","images/OIP-C_30.gif",
                "images/OIP-C_31.gif","images/OIP-C_32.gif","images/OIP-C_33.gif","images/OIP-C_34.gif","images/OIP-C_35.gif",
                "images/OIP-C_36.gif","images/OIP-C_37.gif","images/OIP-C_38.gif","images/OIP-C_39.gif","images/OIP-C_40.gif",
                "images/OIP-C_41.gif","images/OIP-C_42.gif","images/OIP-C_43.gif","images/OIP-C_44.gif","images/OIP-C_45.gif",
                "images/OIP-C_46.gif","images/OIP-C_47.gif","images/OIP-C_48.gif","images/OIP-C_49.gif","images/OIP-C_50.gif",
                "images/OIP-C_51.gif","images/OIP-C_52.gif","images/OIP-C_53.gif","images/OIP-C_54.gif","images/OIP-C_55.gif",
                "images/OIP-C_56.gif","images/OIP-C_57.gif","images/OIP-C_58.gif","images/OIP-C_59.gif","images/OIP-C_60.gif",
                "images/OIP-C_61.gif","images/OIP-C_62.gif","images/OIP-C_63.gif","images/OIP-C_64.gif","images/OIP-C_65.gif",
                "images/OIP-C_66.gif","images/OIP-C_67.gif","images/OIP-C_68.gif","images/OIP-C_69.gif","images/OIP-C_70.gif",
                "images/OIP-C_71.gif","images/OIP-C_72.gif","images/OIP-C_73.gif","images/OIP-C_74.gif","images/OIP-C_75.gif",
                "images/OIP-C_76.gif","images/OIP-C_77.gif","images/OIP-C_78.gif","images/OIP-C_79.gif","images/OIP-C_80.gif",
                "images/OIP-C_81.gif","images/OIP-C_82.gif","images/OIP-C_83.gif","images/OIP-C_84.gif","images/OIP-C_85.gif",
                "images/OIP-C_86.gif","images/OIP-C_87.gif","images/OIP-C_88.gif","images/OIP-C_89.gif","images/OIP-C_90.gif",
                "images/OIP-C_91.gif","images/OIP-C_92.gif","images/OIP-C_93.gif","images/OIP-C_94.gif","images/OIP-C_95.gif",
                "images/OIP-C_96.gif","images/OIP-C_97.gif","images/OIP-C_98.gif","images/OIP-C_99.gif","images/OIP-C_100.gif"]
            }
        })
    </script>
</body>
</html>

希望我们都能好好爱自己!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 要实现 vue 中的切片上传,可以使用 File API 中的 Blob 对象和 FormData 对象。 首先,你需要在组件中绑定一个文件输入框,并为它绑定一个 change 事件: ``` <template> <div> <input type="file" ref="fileInput" @change="upload" /> </div> </template> <script> export default { methods: { upload() { // 获取文件对象 const file = this.$refs.fileInput.files[0]; // 计算切片数量 const chunkCount = Math.ceil(file.size / chunkSize); // 循环遍历切片 for (let i = 0; i < chunkCount; i++) { // 计算切片范围 const start = i * chunkSize; const end = start + chunkSize; // 创建切片 const chunk = file.slice(start, end); // 使用 FormData 对象上传切片 const formData = new FormData(); formData.append('chunk', chunk); formData.append('filename', file.name); formData.append('chunkIndex', i); // 发送 AJAX 请求上传切片 axios.post('/api/upload', formData).then(response => { // 上传成功 }).catch(error => { // 上传失败 }); } } } } </script> ``` 在服务端,你可以使用诸如 multer 等中间件将切片保存到本地文件系统中。当所有切片都上传成功之后,可以将这些切片合并成完整的文件。 希望这能对你有所帮助! ### 回答2: 在Vue中实现切片上传较大图片的步骤如下: 1. 切片:使用JavaScript的File API将较大的图片切分为多个小片段。可以使用canvas将图片切分为固定大小的切片,例如每个切片的大小为1MB。 2. 上传:使用Vue的axios库或其他HTTP请求库将每个切片上传到服务器。可以使用FormData对象来发送每个切片的数据,同时还需要将切片的索引信息和总文件大小一起发送给服务器。 3. 合并:在服务器端接收到每个切片后,将每个切片保存在临时文件或数据库中。当所有切片都上传完毕后,服务器会根据切片的索引信息和总文件大小进行合并,得到完整的图片文件。 4. 完成上传:服务器端将完整的图片文件保存在指定位置,并返回一个上传成功的响应给前端。 5. 错误处理:在上传过程中,需要考虑网络中断、切片丢失等错误情况。可以通过记录已上传的切片信息和提供重新上传功能来处理这些错误,确保所有切片都能成功上传并正确合并。 总结:通过切片上传的方式,可以有效解决较大图片上传的问题。Vue提供了方便的工具和库,如File API和axios,可以帮助我们实现切片上传功能。同时,服务器端也需要进行相应的切片保存和合并操作。 ### 回答3: 在Vue中实现切片上传较大图片的方法如下: 首先,在Vue项目中安装和引入需要的依赖库,如axios用于发送网络请求。 其次,创建一个上传组件Upload.vue,在组件中包含一个input标签用于选择文件,并添加change事件监听器,通过文件选择器选择上传的图片。 接着,在change事件处理函数中,获取选中的图片文件对象,并进行切片处理。可以使用FileReader对象读取图片文件,并按照预设的分片大小切割为多个片段文件。 然后,通过axios库将切片文件按照分片的顺序逐个发送给服务器。使用axios的post方法发送每个切片文件,同时传递一些必要的参数,如当前切片的索引、总切片数、图片名称等。 在服务器端,接收到每个切片文件后,将其保存到临时文件夹中,并记录每个切片的顺序和索引。 最后,在所有切片文件都上传完成后,服务器端将按照切片的顺序将它们合并为完整的图片文件,保存到最终的目标文件夹中。在合并过程中,可以使用文件流的方式将每个切片文件的内容写入到最终文件中,完成合并。 在客户端,可以通过监听上传进度事件,实时显示上传的进度百分比,以及上传成功或失败的消息。 以上就是使用Vue实现切片上传较大图片的基本过程,可以根据具体情况进行调整和优化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值