vue使用vuedraggable实现拖拽排序布局

import draggable from “vuedraggable”;

<!-- 拖拽 -->
      <div class="content">
        <draggable v-model="shopList" @update="datadragEnd" :options="{animation:500}">
          <transition-group class="clearfix">
            <div v-for="item in shopList" :key="item.id" class="drag-item clearfix">
              <img src="../../../../../assets/images/user-img.png" alt />
              <ul>
                <li>{
  {item.name}}</li>
                <li>ID:{
  {item.id}}</li>
                <li>原价{
  {item.oldPrice}}</li>
                <li>¥:{
  {item.price}}</li>
              </ul>
            </div>
          </transition-group>
        </draggable>
      </div>

//拖拽
   sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用Vue.js和draggable.js来实现九宫格排序。首先,确保你已经在你的项目中安装了Vue.js和draggable.js。 在Vue组件中,你可以使用v-for指令来渲染九宫格的项目,并且给每个项目添加一个唯一的标识符。然后,你可以将这些项目包裹在一个可的容器中,使用draggable.js提供的指令来实现排序的功能。 以下是一个示例代码,展示了如何在Vue实现九宫格的排序: ```html <template> <div> <div class="grid-container"> <div v-for="item in items" :key="item.id" :class="{ 'dragging': item.isDragging }" v-draggable="{ value: item, options: { group: 'grid', draggable: '.grid-item', forceFallback: true, ghostClass: 'ghost', onUpdate: handleUpdate, onMove: handleMove } }" class="grid-item" > {{ item.name }} </div> </div> </div> </template> <script> import draggable from 'vuedraggable'; export default { components: { draggable }, data() { return { items: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, // 添加更多项目... ] }; }, methods: { handleUpdate(event) { // 更新项目列表 this.items = event.map(item => item.value); }, handleMove(event) { // 将中的项目标记为正在 this.items.forEach(item => { item.isDragging = event.relatedContext.element === item; }); } } }; </script> <style> .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; } .grid-item { background-color: #f5f5f5; border: 1px solid #ccc; padding: 20px; } .dragging { opacity: 0.5; } .ghost { opacity: 0.2; } </style> ``` 上述代码中,我们使用vue-draggable库,它提供了一个v-draggable指令来实现功能。通过设置特定的选项,我们可以定义的行为和样式。 在handleUpdate方法中,我们通过event.map将更新后的项目列表赋值给items变量。在handleMove方法中,我们使用event.relatedContext.element来判断哪个项目正在被,并将其标记为isDragging。 最后,在样式中,我们使用grid布局来创建九宫格,并为中的项目和占位符设置样式。 希望这个示例能对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值