当位于bootstrap选项卡内时,变形不会设置位置
Shapeshift doesn't set positions when located inside bootstrap tab
我正在使用变形来拖动&删除选项,其中一个容器隐藏在bootstrap选项卡中。变形在这里初始化,但在第一次拖动项目之前不会设置项目的位置。
jsst修复这个bug: https://jsfiddle.net/owm6wo0r/
正如你在JSFiddle中看到的,当你点击"Tab 2"时,所有的项目都是一个接一个的。当你试图拖动它们时,它们会设置位置。
这是插件的文档:https://github.com/McPants/jquery.shapeshift/wiki/2.0-api-documentation
我尝试了事件"ss-rearrange"点击选项卡,但它没有工作…知道怎么修吗?
HTML:
<div class="dragdrop">
<div>Item</div>
<div>Item</div>
<div>Item</div>
<div>Item</div>
</div>
<ul class="nav-tabs nav" role="tablist">
<li class="active">
<a href="#tab1" data-toggle="tab" aria-controls="tab1" role="tab">Tab 1</a>
</li>
<li>
<a href="#tab2" data-toggle="tab" role="tab" aria-controls="tab2">Tab 2</a>
</li>
</ul>
<div class="tab-content">
<div id="tab1" role="tabpanel" class="tab-pane active">
<p> Nothing there </p>
</div>
<div id="tab2" role="tabpanel" class="tab-pane">
<div class="dragshared">
<div>Item</div>
<div>Item</div>
<div>Item</div>
<div>Item</div>
</div>
</div>
</div>
JS:
$('.nav-tabs a').click(function (e) {
e.preventDefault();
$(this).tab('show');
});
$('.dragdrop').shapeshift({
selector: "div",
enableResize: false,
align: "left",
paddingX: 0,
paddingY: 0,
gutterX: 35,
gutterY: 70,
colWidth: 190,
animated: false,
minColums: 4,
dragClone: false,
enableDrag: true,
enableCrossDrop: true
});
$('.dragshared').shapeshift({
selector: "div",
enableResize: false,
align: "left",
paddingX: 0,
paddingY: 0,
gutterX: 35,
gutterY: 70,
colWidth: 190,
animated: false,
minColums: 4,
deleteClone: true,
dragClone: true,
enableCrossDrop: false
});
我的最终解决方案是在visibility: hidden/visible
而不是display: block/none
的开始引导选项卡上设置,并且只有在变形初始化后再次切换为显示无/块,因为可见性没有正常工作(停用选项卡可见一秒钟)。
我相信有办法让它变得聪明。
CSS .tab-content>.tab-pane {
display: block;
visibility: hidden;
height: 0;
width: 100%;
.dragshared {
height: 0!important;
}
}
.tab-content>.active {
height: auto;
visibility: visible;
.dragshared {
height: auto;
}
}
.tab-content.initialized>.tab-pane {
display: none;
visibility: visible;
}
.tab-content.initialized>.tab-pane.active {
display: block;
}
JS
(shapeshift initialization)
$('.tab-content').addClass('initialized');
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 为什么在变形之前不缺少Fx
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 自定义函数中的光标位置
- 安卓平台上的QWebView HTML5地理位置
- DIV并排,位置不正确
- 使用jQuery更改元素的顶部位置
- 在谷歌地图上绘制位置数据库
- 跟踪jqplot垂直折线图的鼠标位置
- 设置画布渲染器的x和y位置
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- 根据页面的位置突出显示文本中的字符
- 设置动画时,SVG/Raphael大圆圈会变形
- 当位于bootstrap选项卡内时,变形不会设置位置