Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: переместить(поменять координаты) объекта с помощью JQuery
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » переместить(поменять координаты) объекта с помощью JQuery

Страниц (1): [1]
 

1. zypikov - 06 Марта, 2012 - 23:33:08 - перейти к сообщению
Есть 10 картинок, каждая вложенная в дивы. Координата каждого дива имеет приращение в 15пик. Возможно ли с помощью JQuery пробежать по этим дивам(пусть они тоже будут вложены в некоторый контейнер Див), и изменить их координаты (топ, лефт) на 15пик?
Может есть что-типа функции someFunction(РодительПотомковКоторыхНадоПеребрать,moveX,moveY)? moveX,moveY - приращение координат к каждому потомку. Ну и какой-нибудь так эффект замедленного изменения положения)))
Потерял линк на сайт с такой фигней по JQuery((
2. IllusionMH - 07 Марта, 2012 - 01:49:51 - перейти к сообщению
zypikov, если я правильно понял - это можно сделать примерно так
_http://jsfiddle.net/IllusionMH/nAdJr/1/embedded/result,js/

Лучшая ссылка по jQuery фигне Подмигивание
Понравился видеокурс 30 Days to Learn jQuery на Tuts+ от Jeffrey Way
3. zypikov - 07 Марта, 2012 - 21:00:18 - перейти к сообщению
Да, вы правильно поняли IllusionMH. Но мне еще нужно смещать координаты, начиная с определенного потомка, например второго. Я почитал по вашей ссылке документацию (видое курс не смотрел, интернет не тянет(( ), и насколько понял нельзя передать в функцию номер потомка с которого нужно начинать смещать. Если можно, то как?

Воообще, моя задача состоит в том, что: допустим удалил 3 потомка, а 4 и 5(последний "подъехали" к нему..
Видимо, придется самим js получать потомка, а потом через jQuery смещать каждый, начиная с удаленного((
4. DeepVarvar - 07 Марта, 2012 - 23:49:42 - перейти к сообщению
zypikov пишет:
удалил 3 потомка, а 4 и 5(последний "подъехали" к нему..

Идите от обратного - при удалении 3-его надо анимированно сжать его ширину до нуля пикс.
А уж после анимации, реально сделать ему remove();
Для юзера же это будет выглядеть так как вы описали.
Кроме того что-то мне кажется что стандартного "каруселькиного" подхода с родителем overflow: hidden; тоже может хватить за глаза.
5. zypikov - 08 Марта, 2012 - 10:19:18 - перейти к сообщению
DeepVarvar пишет:
Идите от обратного - при удалении 3-его надо анимированно сжать его ширину до нуля пикс.
Я думал по-другому Улыбка Может даже и лучший вариант.
DeepVarvar, перебор потомков у меня идет чистым js. Получил я потомка, как теперь его передать в jquery, чтобы ужать?

DeepVarvar пишет:
Кроме того что-то мне кажется что стандартного "каруселькиного" подхода с родителем overflow: hidden; тоже может хватить за глаза.
Никогда не слышал. Ссылку на примерчик, пожалуйста) и лучше с кодом)))
6. IllusionMH - 08 Марта, 2012 - 11:33:58 - перейти к сообщению
zypikov, в jQuery метод .each() можно передавать индекс элемента в массиве на котором он сейчас.
_http://jsfiddle.net/IllusionMH/nAdJr/5/embedded/result,js/
Вот переделанный вариант, там где есть флаг, который устанавливается если находимся на текущем (удаляемом) элементе, и все следующие будут сдвигаться в сторону.
Сам же элемент имеет, как упоминал выше DeepVarvar, анимацию уменьшения ширины и по завершению анимации - удаляется.

Функцию нужно будет оптимизировать (как минимум повесить события не на каждый элемент, а на родителя, и сравнивать с объектом инициатором события, а не с передаваемым в функции текущим)

В некоторых случаях оптимальней будет вариант когда всем дочерним объектам задается float: left;, и анимируются только ширина (возможно отступ(ы)) удаляемого элемента, а остальные "подъедут" сами.
7. zypikov - 09 Марта, 2012 - 18:20:40 - перейти к сообщению
IllusionMH пишет:
в jQuery метод .each() можно передавать индекс элемента в массиве на котором он сейчас.
А я посмотрел, что в children() ниче передать незя, а про each() и не подумал((.

IllusionMH пишет:
Функцию нужно будет оптимизировать (как минимум повесить события не на каждый элемент, а на родителя, и сравнивать с объектом инициатором события, а не с передаваемым в функции текущим)
. Ну это когда я синтаксис jQuery подучу))

Но это еще часть работы. Как сделать полностью прозрачной часть изображения? Допустим есть фото 100 на 200 пикселей, мне нужно сделать полностью непрозрачной часть этого фото размеро 50 на 100 пикс. Может ли это jQuery? Либо какая-нибудь другая библиотека? Я посмотрел примеры Рафаэль, но подобного ничего не видел. Пока что вижу единственный выход - резать пхп скриптом функцией imagecopyresampled() на части, потом их складывать. Затем js у нужного убирать непрозрачность.
8. IllusionMH - 09 Марта, 2012 - 18:52:16 - перейти к сообщению
zypikov, как вариант, использовать блоки фиксированного размера, а изображения ставить им фоном и сдвигать его.

Либо div с overflow: hidden; и фиксированными размерами. Внутри располагаются изображения, которые сдвинуты влево и вверх (отрицательные left/top или соответствующие margin).
9. zypikov - 11 Марта, 2012 - 21:10:13 - перейти к сообщению
IllusionMH пишет:
Либо div с overflow: hidden; и фиксированными размерами. Внутри располагаются изображения, которые сдвинуты влево и вверх (отрицательные left/top или соответствующие margin).

Жаль только, что со свойством overflow есть косяки в разных браузерах(((
И все равно эти сокрытия получаются за счет извращений всяких((
IllusionMH + 1 в карму, DeepVarvar спасибо за помощь)

 

Powered by ExBB FM 1.0 RC1