vue轮播图拖拽放置任意位置功能实现(拖动改变顺序)

<template> <div class="container" > <div class="topOperate flex-btw"> <div class="left flex"> <div class="add">+</div> <span class="text">Upload New Image(s)&
摘要由CSDN通过智能技术生成
<template>
    <div class="container" >
        <div class="topOperate flex-btw">
            <div class="left flex">
                <div class="add">+</div>
                <span class="text">Upload New Image(s)</span>
            </div>
            <div class="right flex">
                <i class="iconfont icon45-01"></i>
                <span class="text">Drag to reorder</span>
            </div>
        </div>
        <div class="uploadSwiper m-a">
            <div class="swiper-father pos-r">
                <swiper class="swiper" :class="screenWidth <= 768 ? '' : 'swiper-no-swiping'" :options="swiperOption"  >
                    <swiper-slide class="J_file bs pos-r" v-for="(item,index) in list" :key="index" :data-obj="'J_file_'+index">
                        <div class="drop-left"></div>
                        <label :for="'J_file_'+index">
                            <div class="uploadBefore flex flex-col pos-a">
                                <p>+</p>
                                <span>Click to upload</span>
                            </div>
                        </label>
                        <input type="file" :id="'J_file_'+index" />
                        
                        <div class="imgPart w-h100 pos-a" :id="'J_img_'+index" v-if="index == 0 || index == 1">
                            <i class="iconfont icon30-01 pos-a"></i>
                            <img :src="item.pic" draggable="true" :data-obj="'J_file_'+index" alt />
                            <div class="editBtn pos-a pos-center"  @click="showPopup = true">
                                <EditBtn></EditBtn>
                            </div>
                        </div>
                        <div class="drop-right"></div>
                    </swiper-slide>
                </swiper>
                <LeftBtn class="prev"></LeftBtn>
                <RightBtn class="next"></RightBtn>
            </div>
        </div>
        <div class="writePart flex-btw">
            <div class="left">
                <input class="titleWrite bs" type="text" placeholder="Add a post title" />
                <div class="writeBoard"><Editor :height="1000" :toolbarItems="toolbarItems"></Editor></div>
                <input class="titleWrite bs" type="text" placeholder="Category Tags
" />
            </div>
            <div class="right">
                <div class="contentBox bs">
                    <div class="titleWrap">
                        <i class="iconfont icon46-01"></i>
                        <span>Lastest Drafts</span>
                    </div>
                    <div class="item">
                        <div class="desc">Exploring life</div>
                        <ul class="pics">
                            <li class="pic" v-for="(item,index) in 3" :key="index">
                                <img src="./../../../static/images/pic3.png" alt class="w-h100" />
                            </li>
                        </ul>
                    </div>
                    <div class="item">
                        <div class="desc">Exploring life</div>
                        <ul class="pics">
                            <li class="pic" v-for="(item,index) in 3" :key="index">
                                <img src="./../../../static/images/pic3.png" alt class="w-h100" />
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="contentBox contentBox2 bs">
                    <div class="titleWrap flex">
                        <div class="logo">
                            <img src="./../../../static/images/logo3.png" alt class="w-h100" />
                        </div>
                        <span>Set Access Level</span>
                    </div>
                    <div class="selectWrap">
                        <ul class="select">
                            <li class="li flex">
                                <label class="checkBox">
                                    <input type="checkbox" />
                                </label>
                                <span class="text">Tire 1 - Liketu Fans</span>
                            </li>
                            <li class="li flex">
                                <label class="checkBox">
                                    <input type="checkbox" />
                                </label>
                                <span class="text">Tire 1 - Liketu Fans</span>
                            </li>
                            <li class="li flex">
                                <label class="checkBox">
                                    <input type="checkbox" />
                                </label>
                                <span class="text">Tire 1 - Liketu Fans</span>
                            </li>
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现鼠标拖拽轮播,可以结合 Vue 和第三方插件来完成。以下是一个基于 Vuevue-awesome-swiper 插件实现鼠标拖拽轮播的示例: 1. 安装 vue-awesome-swiper 插件 ``` npm install vue-awesome-swiper --save ``` 2. 在 Vue 组件中引入并初始化 swiper 组件 ``` <template> <div class="swiper-container" ref="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="(item, index) in list" :key="index"> <img :src="item.imgUrl" alt=""> </div> </div> </div> </template> <script> import Vue from 'vue' import VueAwesomeSwiper from 'vue-awesome-swiper' Vue.use(VueAwesomeSwiper) export default { data () { return { list: [ { imgUrl: 'http://xxx.com/1.jpg' }, { imgUrl: 'http://xxx.com/2.jpg' }, { imgUrl: 'http://xxx.com/3.jpg' }, { imgUrl: 'http://xxx.com/4.jpg' } ] } }, mounted () { this.$nextTick(() => { this.swiper = new this.$swiper(this.$refs.swiper, { slidesPerView: 'auto', freeMode: true, freeModeMomentumRatio: 0.5, freeModeMomentumBounce: false, freeModeMinimumVelocity: 0.1, grabCursor: true, mousewheel: true, resistanceRatio: 0.1 }) }) }, beforeDestroy () { if (this.swiper) { this.swiper.destroy() } } } </script> <style lang="scss"> .swiper-container { width: 100%; height: 100%; .swiper-wrapper { display: flex; .swiper-slide { width: 33.33%; img { width: 100%; } } } } </style> ``` 3. 在 mounted 钩子中初始化 swiper 实例,并设置相关参数。 ``` mounted () { this.$nextTick(() => { this.swiper = new this.$swiper(this.$refs.swiper, { slidesPerView: 'auto', freeMode: true, freeModeMomentumRatio: 0.5, freeModeMomentumBounce: false, freeModeMinimumVelocity: 0.1, grabCursor: true, mousewheel: true, resistanceRatio: 0.1 }) }) } ``` 通过设置 `freeMode: true` 启用 freeMode 模式,`grabCursor: true` 启用鼠标拖拽模式,`mousewheel: true` 启用鼠标滚轮控制模式等参数,可以实现鼠标拖拽轮播效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值