vuedraggable怎么设置把两个区块直接禁止拖拽?

91 篇文章 2 订阅

答案:设置group属性不同的值,即可。

代码参考:

<template>
  <div> 
<!--使用draggable组件-->
<div class="itxst">
  <span>A、B列可以相互拖动,无法拖到C列</span>
<div class="col">
  <div class="title" >A列</div>
 <draggable v-model="arr1" group="site"  animation="300" dragClass="dragClass"  ghostClass="ghostClass" chosenClass="chosenClass" @start="onStart" @end="onEnd">
    <transition-group>
     <div class="item" v-for="item in arr1" :key="item.id">{{item.name}}</div>
    </transition-group>
</draggable> 
 </div>
 <div  class="col">
    <div class="title" >B列</div>
 <draggable v-model="arr2" group="site" animation="300" dragClass="dragClass"  ghostClass="ghostClass" chosenClass="chosenClass" @start="onStart" @end="onEnd">
    <transition-group>
     <div class="item" v-for="item in arr2" :key="item.id">{{item.name}}</div>
    </transition-group>
</draggable> 
 </div>
  <div  class="col">
    <div class="title" >C列</div>
 <draggable v-model="arr2" group="c" animation="300" dragClass="dragClass"  ghostClass="ghostClass" chosenClass="chosenClass" @start="onStart" @end="onEnd">
    <transition-group>
     <div class="item" v-for="item in arr3" :key="item.id">{{item.name}}</div>
    </transition-group>
</draggable> 
 </div>
  </div>
  </div>
</template>
<style scoped>
/*定义要拖拽元素的样式*/
.ghostClass{
  background-color:  blue !important;
}
.chosenClass{
  background-color: red !important;
  opacity: 1!important;
}
.dragClass{
  background-color: blueviolet !important;
  opacity: 1 !important;
  box-shadow:none !important;
  outline:none !important;
  background-image:none !important;
}
.itxst{
  margin: 10px;
  
}
.title{
  padding: 6px 12px;
}
.col{
  width: 40%;
  flex: 1;
  padding: 10px;
  border: solid 1px #eee;
  border-radius:5px ;
  float: left;
}
.col+.col{
 margin-left: 10px;
}

.item{
  padding: 6px 12px;
  margin: 0px 10px 0px 10px;
  border:  solid 1px #eee;
   background-color: #f1f1f1;
}
.item:hover{
  background-color: #fdfdfd;
  cursor: move;
}
.item+.item{
  border-top:none ;
  margin-top: 6px;
}
</style>
<script>
//导入draggable组件
import draggable from 'vuedraggable'
export default {
  //注册draggable组件
  components: {
            draggable,
        },
  data() {
    return { 
      drag:false,
      //定义要被拖拽对象的数组
      arr1:[
        {id:1,name:'www.itxst.com'},
        {id:2,name:'www.jd.com'},
        {id:3,name:'www.baidu.com'},
        {id:4,name:'www.taobao.com'}
        ],
        arr2:[
        {id:1,name:'www.google.com'},
        {id:2,name:'www.msn.com'},
        {id:3,name:'www.ebay.com'},
        {id:4,name:'www.yahoo.com'}
        ],
        arr3:[
        {id:1,name:'item 1'},
        {id:2,name:'item 2'},
        {id:3,name:'item 3'},
        {id:4,name:'item 4'}
        ]  
    };
  },
  methods: {
     //开始拖拽事件
      onStart(){
        this.drag=true;
      },
      //拖拽结束事件
       onEnd() {
       this.drag=false;
    },
  },
};
</script>

问题2:vuedraggable里面嵌套输入框,想全选输入框的值清除,会触发拖动,实际上不想触发

1、方法一:

@foucs禁用拖动
@bulr开启拖动我是这么解决的

2、方法二:

加了属性handel=".handle",不要整个拖动,改为了图标拖动

MapLibre GL JS 是一个基于 Web 的地图渲染库,它允许开发者创建交互式的 3D 地图应用。要在 MapLibre GL JS 中为地图的不同区块设置不同的颜色,你可以通过自定义瓦片样式或者修改数据驱动的着色来实现。 **1. 瓦片样式 (Tile Styles):** 首先,你需要了解 Mapbox Style Specification,这是一个 JSON 格式文件,用于描述地图的样式。在 `styles.json` 文件中,可以为每个特征(比如行政区域、道路等)定义一个 `fill-color` 属性来指定颜色。例如: ```json { "layers": [ { "id": "your_layer", "type": "fill", "paint": { "fill-color": { "property": "your_property", // 根据你的数据字段设置 "stops": [ ["[your_value]", "#ff0000"], // 较低值对应红色 ["[another_value]", "#00ff00"] // 较高值对应绿色 ] } } } ] } ``` 在这个例子中,`your_property` 应替换为包含区块信息的数据字段,`[your_value]` 和 `[another_value]` 是区分颜色阈值的关键值。 **2. 数据驱动的颜色编码 (Data-driven styles):** 如果你的地图数据已经包含了区块颜色的信息,你可以利用 MapLibre GL JS 提供的数据驱动着色功能。这需要你在 JavaScript 中处理数据,并将结果传递给 `setPaintProperty` 方法动态更新样式。例如: ```javascript // 假设你有map和data const style = new mapboxgl.Style(); let dataColorMap = ...; // 根据数据生成的颜色映射 map.on('load', function() { map.setPaintProperty('your_layer', 'fill-color', { property: 'your_data_field', stops: dataColorMap.map(colorRange) }); }); ``` **相关问题--:** 1. 数据驱动着色如何处理实时变化的数据? 2. 如何在 MapLibre GL JS 中加载自定义的瓦片样式文件? 3. 对于大量数据,如何优化数据驱动的颜色映射性能?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值