Dragula 拖动嵌套图像不会保持样式
Dragula on drag the nested image doesn't stay styled
Codepen 在这里:
http://codepen.io/jasonsawtelle/pen/jqbeXd
//HTML
<div id="drag_container">
<div><img src="http://placehold.it/200x200/ffcc00/ffffff"/></div>
<div><img src="http://placehold.it/200x200/99cc00/ffffff"/></div>
<div><img src="http://placehold.it/200x200/333333/ffffff"/></div>
<div><img src="http://placehold.it/200x200/ff0000/ffffff"/></div>
</div>
//SCSS
//Dragula
.gu-mirror{position:fixed!important;margin:0!important;z-index:9999!important;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.gu-hide{display:none!important}.gu-unselectable{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.gu-transit{opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";filter:alpha(opacity=20)}
// Example
#drag_container{
display: flex;
div{
img{
height: 100px;
}
}
}
//JS
dragula([document.querySelector('#drag_container')])
这是一个基本设置,Dragula 可以正常工作,但是当我拖动 div 时,包含的 css 调整大小的图像在拖动事件期间弹出为全尺寸。
您应该将 .gu-mirror img
设置为 width: 100px;
以达到您想要的效果。结果见CodePen。
.gu-mirror
是 Dragula 插件添加的 div,用于镜像所选元素以拖动到其他地方。
我不确定这是否是正确的解决方案。首先,重新定义 .gu-mirror 的规则打破了 .gu-mirror 类的单一职责原则。它的工作不是以特定于元素的方式设计样式。
一个问题可能是,默认情况下,对象在拖动时会附加到 body 元素,如果该样式是基于父元素定义的,它会失去一些样式(附加到 body 容器时不是这种情况。有一个选项 mirrorContainer
,您可以在其中设置被拖动的元素不会丢失其样式
Codepen 在这里: http://codepen.io/jasonsawtelle/pen/jqbeXd
//HTML
<div id="drag_container">
<div><img src="http://placehold.it/200x200/ffcc00/ffffff"/></div>
<div><img src="http://placehold.it/200x200/99cc00/ffffff"/></div>
<div><img src="http://placehold.it/200x200/333333/ffffff"/></div>
<div><img src="http://placehold.it/200x200/ff0000/ffffff"/></div>
</div>
//SCSS
//Dragula
.gu-mirror{position:fixed!important;margin:0!important;z-index:9999!important;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";filter:alpha(opacity=80)}.gu-hide{display:none!important}.gu-unselectable{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.gu-transit{opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";filter:alpha(opacity=20)}
// Example
#drag_container{
display: flex;
div{
img{
height: 100px;
}
}
}
//JS
dragula([document.querySelector('#drag_container')])
这是一个基本设置,Dragula 可以正常工作,但是当我拖动 div 时,包含的 css 调整大小的图像在拖动事件期间弹出为全尺寸。
您应该将 .gu-mirror img
设置为 width: 100px;
以达到您想要的效果。结果见CodePen。
.gu-mirror
是 Dragula 插件添加的 div,用于镜像所选元素以拖动到其他地方。
我不确定这是否是正确的解决方案。首先,重新定义 .gu-mirror 的规则打破了 .gu-mirror 类的单一职责原则。它的工作不是以特定于元素的方式设计样式。
一个问题可能是,默认情况下,对象在拖动时会附加到 body 元素,如果该样式是基于父元素定义的,它会失去一些样式(附加到 body 容器时不是这种情况。有一个选项 mirrorContainer
,您可以在其中设置被拖动的元素不会丢失其样式