Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/48: Рейтинг темы: голосов - 48, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 8

Движение img внутри div

12.08.2013, 20:45. Показов 9114. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема:
Есть допустим это.
HTML5
1
2
3
4
5
6
7
8
9
<html>
<title></title>
<head></head>
<body>
 <div id="cntrl" width="100%" height="50%">
  <img id="pic" scr="something.png">
 </div>
</body>
</html>
Как, посредством javascript, заставить картинку двигаться в случайном направлении внутри дива, отталкиваясь от его стенок?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2013, 20:45
Ответы с готовыми решениями:

Преобразовать IMG (без id и class) в DIV
&lt;div class=&quot;product&quot;&gt; &lt;!--IMG1--&gt; &lt;a href=&quot;http://site.net/_pu/0/02900145.jpg&quot; target=&quot;_blank&quot; title=&quot;Нажмите, для просмотра в...

Класс div внутри div
Здравствуйте. Нужна помощь. Есть div, внутри него N-ное число div'ов, нужно пробежаться по всем дивам внутри основного и определить класс...

Простое движение div'a
Доброе время суток всем!) В общем, как мне казалось сначала, простая задача как организовать простое перемещение div'a. Вот код. но он...

8
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
12.08.2013, 23:01
Zakhsukh, запускаете таймер, который через некоторый интервал времени запускает какую то функцию...
в этой функции находите координаты картинки внутри div-а, потом генерируете новые случайные координаты, в которые отправляете картинку.

Для отскакивания можно фантазировать самому... Например если при очередном вызове функции картинка находится у границы блока, определите, по какой прямой картинка летела до этого вызова и сгенерируйте координаты, зеркально отраженные от границы блока... и так далее... можно наворачивать сколько угодно))
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,531
13.08.2013, 07:26
Цитата Сообщение от z-z Посмотреть сообщение
потом генерируете новые случайные координаты
Может просто дергать на одном месте, наверно.

Можно попробовать использовать скрипты, со снегом, дождем, листиками, сердечками и прочей ерундой, в этих скриптах задумано хаотичное движение в одну сторону.
Отскок как z-z, подсказал.

тут есть архив со снегом
0
z-z
170 / 169 / 56
Регистрация: 22.06.2011
Сообщений: 980
13.08.2013, 09:20
Цитата Сообщение от newJS Посмотреть сообщение
Может просто дергать на одном месте, наверно.
ну все зависит от фантазии, как человек задумает, так и будет))
можно ограничивать "угол обзора", делать его каждый раз разным, хотя опять же есть вероятность повторения этого угла обзора, но она маленькая))
можно брать несколько предыдущих шагов, анализировать их и в соответствии с этим выбирать область, в которой будут новые координаты...
тут вариантов много же главное, чтобы фантазии хватило... ))
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
13.08.2013, 12:40
Картинку можно двигать не только на JS, можно сделать флешь анимацию и записать в один динамический файл с форматом gif, каждый раз при выборе решения нужно смотреть что проще сделать...
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
13.08.2013, 23:46
HTML5
1
2
3
<center>
<div style="background:gold;width:150;height:100" id=mydiv><img id=myimg src="1.gif" style="position:absolute"></div>
   <!-- 1.gif - Ваше изображение-->
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script type="text/javascript">
ab2=0;ab3=0;x=1;y=1;
pw=16; // Ширина изображения в пикселях (указать)
ph=16; // Высота изображения в пикселях (указать)
 
function dvizhenie(){
var elem1 = document.getElementById("mydiv");
ww1 = elem1.offsetWidth;
hh1 = elem1.offsetHeight;
ll1 = 0;
tt1 = 0;
while (elem1){ll1 += elem1.offsetLeft;
   tt1 += elem1.offsetTop;
   elem1 = elem1.offsetParent;
}
 
ab2+=x;ab3+=y;
if(ab3>=hh1-ph){y=-1};
if(ab2>=ww1-pw){x=-2};
if(ab3<=0){y=2};
if(ab2<=0){x=1};
document.getElementById("myimg").style.top=tt1+ab3;
document.getElementById("myimg").style.left=ll1+ab2;
}
 
setInterval("dvizhenie()",50);
</script>
Ещё можно это делать на канвасе.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
14.08.2013, 06:42
строки ##22-26 надо бы переписать:
document.getElementById ("myimg").style.top = (tt1 + ab3 + document.body.scrollTop) + 'px';
document.getElementById ("myimg").style.left = (ll1 + ab2 + document.body.scrollLeft) + 'px';
}

setInterval (dvizhenie, 50);
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
15.08.2013, 11:31
И что получилось? Во время скроллирования DIV смещается, уходит за пределы, а картинка продолжает бегать на том же месте, что и раньше?
0
Юзер с абсолютным слухом
 Аватар для Опан
709 / 489 / 195
Регистрация: 17.12.2010
Сообщений: 1,428
24.08.2013, 01:43
Вот более простой вариант решения:
HTML5
1
<div style="position:absolute;background:gold;width:150;height:100"><img id=myimg src="1.gif" style="position:absolute"></div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script>
x=0;y=0;x1=1;y1=1;
function dvizhenie(){
document.getElementById("myimg").style.left=x;
document.getElementById("myimg").style.top=y;
if(x>150-document.getElementById("myimg").width|x<0){x1=-x1};  // 150 - ширина дива
if(y>100-document.getElementById("myimg").height|y<0){y1=-y1}; // 100 - высота дива
x+=x1;y+=y1;
}
setInterval(dvizhenie,50);
</script>
И не приходится вручую указывать размеры изображения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.08.2013, 01:43
Помогаю со студенческими работами здесь

Движение блоков div
У меня такой вопрос: есть у меня три блока div,в каждом из которых изображение. стояла задача двигать блок на 200px вниз и возвращать...

Скроллинг внутри div-а
Всем привет. Пытаюсь сделать скроллинг внутри дива для android. Долго уже не могу решить следующую проблему. При попытке двигать див,...

Как на JS изменить все теги <img></img> на странице?
Приветствую. Требуется поменять все &lt;img&gt; &lt;/img&gt; на странице html, а именно сделать замену. Заменить тег src на тег test. Т.е....

Как защитить от взлома через [img] [/img] BBcode
Добрый день! На сайте реализованы некоторые возможности BBcode в комментировании... Я так понимаю что взломать такой сайт с помощью...

Изменить стиль внутри созданного div
На странице из одного класса берется информация, потом создается новый div куда эта информация вставляется. Как доступиться к стилям...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru