react-dnd踩坑之拖拽快照偏移问题

  直接上图!!!

 

 

 

可以看到:

  上面分别演示了拖拽图片和拖拽轮播图的效果,拖拽图片是我想要实现的效果,当图片换成轮播图的时候,拖拽跟随的快照发生了奇怪的偏移;

 

  直接去github上面找解决办法,找找找...,终于发现了前人种下的树,请看issue传送门

 

  虽然英语水平一般,但不难看出这个问题讨论的热火朝天,回复很多,大多看不懂在说啥,但不碍事,凭着经验,直接找大拇指多的,问号结尾的自动忽略。

 

  

 

 

   嘿嘿,这大拇指看着就极其舒服,于是试了试,试试试,总算是看到效果了,需要把轮播图容器上的transfrom写死translate3d(0,0,0),这样就不会有偏移了,问题其实也不难猜到,奇怪的偏移和translate3d设置的偏移相关。

 

  但是又有另一个问题,如果transfrom写死translate3d(0,0,0),轮播图会默认显示最后一张,这是轮播图为了做无限滚动,所以会将最后一张放在第一张前面,那怎么办呢,干掉其它轮播页,只保留首页的轮播,这样基本就能达到想要的效果了。

 

 

 

  但是,这样需要通过样式覆盖,修改组件原来样式,解决得总感觉不如人意。

 

  另外还有一个办法,答案传送门

  

 

   

  需要控制子元素的大小不要超过父元素,遵守上面的条件,我将轮播图改成了渐变切换,渐变切换和滚动切换原理不一样,子元素的宽度不会超出容器,正好符合要求,效果和上面成功的效果图一样,就不重复贴图了。

 

  总结:如果仅仅预览,不需要轮播的实际切换效果,第二个答案不用样式覆盖会更方便一点,当然,第一个方法也不难,方法嘛,能解决问题就行。

  

  

 

 

  

  

 

  

posted @ 2022-03-10 18:10  三页黎明  阅读(416)  评论(0编辑  收藏  举报