- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我打算创建一组可以重新排列的文本框。允许用户创建文本框,然后用文本填充它们。当他不断重新排列它们时,文本区域中的文本会自动更新。我正在使用 Packery 库
// external js: packery.pkgd.js, draggabilly.pkgd.js
$("#add_item").click(function(){
$("#grid").append("<input type='text' class='grid-item'></input>");
});
var $grid = $('.grid').packery({
itemSelector: '.grid-item',
columnWidth: 100
});
// make all grid-items draggable
$grid.find('.grid-item').each( function( i, gridItem ) {
var draggie = new Draggabilly( gridItem );
// bind drag events to Packery
$grid.packery( 'bindDraggabillyEvents', draggie );
});
// show item order after layout
function orderItems() {
var itemElems = $grid.packery('getItemElements');
var res_text = '';
$( itemElems ).each( function( i, itemElem ) {
res_text = ' '+$(itemElem).text();
});
$('#result_text').text(res_text);
}
$grid.on( 'layoutComplete', orderItems );
$grid.on( 'dragItemPositioned', orderItems );
* { box-sizing: border-box; }
body { font-family: sans-serif; }
/* ---- grid ---- */
.grid {
background: #DDD;
max-width: 1200px;
}
/* clear fix */
.grid:after {
content: '';
display: block;
clear: both;
}
/* ---- .grid-item ---- */
.grid-item {
float: left;
width: 100px;
height: 100px;
background: #C09;
border: 2px solid hsla(0, 0%, 0%, 0.5);
color: white;
font-size: 20px;
padding: 10px;
}
.grid-item--width2 { width: 200px; }
.grid-item--height2 { height: 200px; }
.grid-item:hover {
border-color: hsla(0, 0%, 100%, 0.5);
cursor: move;
}
.grid-item.is-dragging,
.grid-item.is-positioning-post-drag {
background: #C90;
z-index: 2;
}
.packery-drop-placeholder {
outline: 3px dashed hsla(0, 0%, 0%, 0.5);
outline-offset: -6px;
-webkit-transition: -webkit-transform 0.2s;
transition: transform 0.2s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://unpkg.com/packery@2.1.1/dist/packery.pkgd.js"></script>
<script src="https://unpkg.com/draggabilly@2.1.1/dist/draggabilly.pkgd.js"></script>
<h1>Packery - get item elements in order after drag</h1>
<button id="add_item" class="ui-button ui-widget ui-corner-all">A button element</button>
<div class="grid">
<input type="text" class="grid-item"></input>
<input type="text" class="grid-item"></input>
<input type="text" class="grid-item"></input>
</div>
<textarea id="result_text" readonly></textarea>
但是,我不能使用按钮随意添加框
最佳答案
你应该使用 grid
类:
$(".grid").append("<input type='text' class='grid-item'/>");
代替:
$("#grid").append("<input type='text' class='grid-item'></input>");
然后你应该在添加新的网格项目后销毁并重新初始化包装。
注意: input
标签是一个自闭标签,所以它应该是:
<input type='text' class='grid-item'/>
可运行代码段:
// external js: packery.pkgd.js, draggabilly.pkgd.js
$("#add_item").click(function() {
$(".grid").append("<input type='text' class='grid-item'/>");
grid.packery('destroy');
grid = initParckery();
});
function initParckery() {
var grid = $('.grid').packery({
itemSelector: '.grid-item',
columnWidth: 100
});
// make all grid-items draggable
grid.find('.grid-item').each(function(i, gridItem) {
var draggie = new Draggabilly(gridItem);
// bind drag events to Packery
grid.packery('bindDraggabillyEvents', draggie);
});
return grid;
}
// show item order after layout
function orderItems() {
setTimeout(function() {
var res_text = '';
var items = grid.packery('getItemElements');
items.forEach(function(itemElem) {
res_text += ' ' + $(itemElem).val();
});
$('#result_text').val(res_text);
}, 100)
}
var grid = initParckery();
grid.on('layoutComplete', orderItems);
grid.on('dragItemPositioned', orderItems);
* {
box-sizing: border-box;
}
body {
font-family: sans-serif;
}
/* ---- grid ---- */
.grid {
background: #DDD;
max-width: 1200px;
}
/* clear fix */
.grid:after {
content: '';
display: block;
clear: both;
}
/* ---- .grid-item ---- */
.grid-item {
float: left;
width: 100px;
height: 100px;
background: #C09;
border: 2px solid hsla(0, 0%, 0%, 0.5);
color: white;
font-size: 20px;
padding: 10px;
}
.grid-item--width2 {
width: 200px;
}
.grid-item--height2 {
height: 200px;
}
.grid-item:hover {
border-color: hsla(0, 0%, 100%, 0.5);
cursor: move;
}
.grid-item.is-dragging,
.grid-item.is-positioning-post-drag {
background: #C90;
z-index: 2;
}
.packery-drop-placeholder {
outline: 3px dashed hsla(0, 0%, 0%, 0.5);
outline-offset: -6px;
-webkit-transition: -webkit-transform 0.2s;
transition: transform 0.2s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://unpkg.com/packery@2.1.1/dist/packery.pkgd.js"></script>
<script src="https://unpkg.com/draggabilly@2.1.1/dist/draggabilly.pkgd.js"></script>
<h1>Packery - get item elements in order after drag</h1>
<button id="add_item" class="ui-button ui-widget ui-corner-all">A button element</button>
<div class="grid">
<input type="text" class="grid-item a"></input>
<input type="text" class="grid-item b"></input>
<input type="text" class="grid-item c"></input>
</div>
<textarea id="result_text" readonly></textarea>
关于javascript - Packery - 通过 jquery 单击添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47477418/
我尝试将同位素与 packery 一起使用,但我不断收到以下错误“错误:无布局模式:packery” 代码如下: HTML: Javascript/Jquery: var $
我正在使用 Metafizzy 的 Packery 库创建一个布局,其中列出了帖子标题和缩略图。单击这些按钮后,我将隐藏初始内容,然后使用 ajax 加载帖子的其余部分以替换该初始内容。 我正在寻找有
我正在尝试在图像上传功能上结合 packery 和 dragabilly。我在同一个函数中初始化它们,但得到了 packery 没有初始化的错误。我尝试将我的代码分成两个函数,一个用于处理图像上传和拖
任何人都可以帮助我如何在拖动时保存包装元素的顺序。然后在保存的订单中重新订购包装元素。这是我之前使用的代码 $val){ ?> ">
我正在使用 Packery 一个 JavaScript 库和 jQuery 插件,由 David DeSandro 创建,可实现无缝且可拖动的布局。我用它来设置我的投资组合,但下面的代码不起作用。我想
我想使用这个插件:http://packery.metafizzy.co/ with layout mode: 一丝不苟如首页所述。我浏览了文档的每一页,但找不到如何将其设置为细致而不是默认的砖石布局
这是我的代码笔:http://codepen.io/helloworld/pen/JoKmQr 假设我从服务器获取了一组数据。数据有标题和订单号。 我有 5 个数组项,orderNumber 从 1
我正在尝试使用 packery 来对齐一些 div。一切正常,但我有一个烦人的空间,我不知道如何摆脱它。这个空间只出现在第二行,而且它们一直在继续。
我想强制网格元素始终位于最后一个位置,即使在移动元素之后也是如此。 我认为一个好的方法是 //get the total number of items var totalItems = $('.gr
我正在尝试使用 Packery 制作混合宽度/固定高度的布局。 虽然我可以让 Packery 工作,并且布置得很好——我需要知道布局完成后屏幕上显示的顺序(而不是 DOM 的顺序),以便我可以对某些
我正在使用 Packery 插件在我正在构建的网站上为我的图片库提供更有趣的布局。 我时不时地访问该页面,一些图像像这样相互重叠: 但是当我刷新页面时,它会正确显示: 我尝试在容器元素上指定高度但无济
我使用JQuery Packery效果很好。 我想到的问题是如何使项目容器在页面上居中? ... ... ... ... 我尝试过CSS: #container { marin:
我想删除 2 个元素,然后在单击按钮时将它们添加回使用 Packery 构建的网格。代码如下: $('.append-button').on( 'click', function() { // c
我似乎在使用将 packery 集成到 angular 中的目录时遇到了问题。当我加载到第一页时,它似乎工作得很好,但是当我离开页面并返回时,它看起来像是以一种奇怪的方式破坏包装,它正在工作,但一切似
当用户将鼠标悬停在包装网格中的网格项上时,我尝试在它们上模仿此动画(请注意,网格项包含背景图像): http://thefoxwp.com/portfolio-packery-4-columns/ 为
我找到了this question答案对我来说很完美。可以帮助我实现这个问题的答案吗?可以在 codepen 或其他地方使用 ng-repet 进行此更改吗?我不知道他说要实现是什么意思: 1)我必须
所以我有一个 Packery 网格,希望随机排列元素,以便它们至少可以完美地组织到容器的高度......如果宽度关闭,那很好。 看这样的布局:
我正在寻找 JavaScript Packery 成分。我想将当前的实现从 GridStack 切换到 Packery。现在阻止我的一件事是 Packery 中缺乏组件(面板)的动态调整大小效果。目前
在我的JQuery Packery app 我想将我的项目放在容器元素内。我使用以下结构: ... ... ... ... 我之前使用了 JQuery Isotope,我可以在其中
这是我 fiddle 中的 javascript 代码 http://jsfiddle.net/eadaradhiraj/v5d1qt7q/3/ // external js: packery.pkg
我是一名优秀的程序员,十分优秀!