2016-05-26 2 views
-1

Я изо всех сил пытался понять, почему GridsterJS работает так медленно для меня, у меня есть гораздо больший проект с использованием сетки, и производительность настолько плоха, что я не могу перетаскивать или изменять размеры любых виджетов на странице. Я был в шоке, чтобы увидеть многое облегченную вниз пример ведет себя точно так же: https://jsfiddle.net/h30pum3b/Gridster JS Performance Issue

#grid li { 
    background-color: green; 
    width: 200px; 
    height: 200px; 
    list-style: none; 
} 

<ul id="grid"> 
    <li></li> 
    <li></li> 
    <li></li> 
    <li></li> 
</ul> 

$("#grid").gridster({ 
    widget_selector: "li", 
    widget_base_dimensions: [200, 200], 
    widget_margins: [10,10], 
    avoid_overlapped_widgets: true 
}); 

Любые подсказки относительно того, что может происходить здесь было бы очень полезно ... Спасибо заранее.

ответ

0

Вам необходимо добавить атрибуты данных, которые использует сетчатка, чтобы он работал правильно.

<li data-col="1" data-row="4" data-sizex="1" data-sizey="1"></li>

Вы можете посетить gridster страницу и посмотреть на HTML структуре он показывает, чтобы увидеть, что я имею в виду. Я сделал несколько трюков для CSS также, вот обновленная скрипка: https://jsfiddle.net/h30pum3b/3/.

+0

Это плавно перемещается для вас? Я по-прежнему вижу очень неуклюжее поведение по сравнению с их примерами. –

+0

Кажется, что лучше работать, когда я откатываю jQuery до 1.11, также я подозреваю, что часть неуклюжести - это то, что сетка создает местозаполнитель для перетаскиваемого элемента, который также является 'li', и ваш CSS применяется ко всем из них, проверьте это: https://jsfiddle.net/h30pum3b/5/ – Trey

1

Обнаружено, почему, сравнивая с примерами, не было класса «сетчатый», добавьте этот класс в свой элемент сетки перед вызовом gridster(), и производительность становится ожидаемой. Спасибо за помощь Трей.