С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Black_Star
23 / 22 / 17
Регистрация: 06.05.2016
Сообщений: 260

Обработчик события на mousemove

18.04.2017, 18:10. Показов 1188. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые. Подскажите пожалуйста, как написать правильно функцию которая будет следить за положением курсора на экране и смещать блоки (через transform: translateX translateY), но на ограниченное пространство для каждого блока?
Вот пример https://jsfiddle.net/q3kgurd3/

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<div class="wrappen">
  <div class="block1"> </div>
  <div class="block2"> </div>
  <div class="block3"> </div>
  <div class="block4"></div>  
</div>
 
 
<!-- bl1 x -14/14   y -13/12 -->
<!-- bl2 x -24/24   y -23/22 -->
<!-- bl3 x -34/34   y -33/32 -->
<!-- bl4 x -54/54   y -53/52 -->
CSS
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
.wrappen {
  position: relative;
  width: 400px;
  height: 400px;
  border: 1px solid #000;
  margin: 0 auto;
}
 
.block1 {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -75px;
  margin-top: -75px;
  background: red;
  width: 150px;
  height: 150px;
}
 
.block2 {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -50px;
  margin-top: -50px;
  background: gold;
  width: 100px;
  height: 100px;
}
 
.block3 {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: pink;
  width: 80px;
  height: 80px;
}
 
.block4 {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -20px;
  margin-top: -20px;
  background: green;
  width: 40px;
  height: 40px;
}
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
28
29
30
31
32
var bl1 = $(".block1"),
  bl2 = $(".block2"),
  bl3 = $(".block3"),
  bl4 = $(".block4");
 
var doc = {
  w: $(window).width(),
  h: $(window).height(),
  wC: $(window).width() / 2,
  hC: $(window).height() / 2
};
var mouse = {
  x: 0,
  y: 0
};
 
$(window).resize(function() {
  doc = {
    w: $(window).width(),
    h: $(window).height(),
    wC: $(window).width() / 2,
    hC: $(window).height() / 2
  }
});
 
$(window).mousemove(function(e) {
  mouse.x = ((e.pageX - doc.w + doc.wC) / (doc.wC / 50));
  mouse.y = ((e.pageY - doc.h + doc.hC) / (doc.hC / 50));
 
  bl1.css('transform', 'translate(' + mouse.x + 'px, ' + mouse.y + 'px)');
 
});

но он немного не коректен, мне необходимо что б первый блок мог смещаться в приделах по Х ( -14 до 14) и по Y ( от -13 до 12), как бы следя за курсором, ну и с остальными блоками аналогично, только что б реакция отклика была скажем по +40мс (с небольшой задержкой) на каждый новый блок?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.04.2017, 18:10
Ответы с готовыми решениями:

Обработчик события Mousedown
Народ я полный ноль в js вот есть код (не мой) &lt;!DOCTYPE html&gt; &lt;html lang=&quot;en&quot;&gt; &lt;head&gt; &lt;meta charset=&quot;UTF-8&quot;&gt; ...

Обработчик события зацикливается
При анимации цифр использовал jquery.animateNumber. Возникла маленькая загвоздка &lt;p id=&quot;ten&quot;&gt;From ten to...

Не работает обработчик события
$(&quot;.dropdown-label&quot;).click(function() { $(&quot;.dropdown-label&quot;).addClass(&quot;open&quot;); }) Такая конструкция не работает, а если делать...

4
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
18.04.2017, 22:01
ты хочешь сделать параллакс эффект? Параллакс? Относительные перемещения картинок!
0
 Аватар для Black_Star
23 / 22 / 17
Регистрация: 06.05.2016
Сообщений: 260
18.04.2017, 22:42  [ТС]
Да, это похоже на то что мне надо, единственно, что в отличии от данного примера мне необходима реакция наоборот. Что б колобки как бы откланялись по направлению к курсору мыши. Как пирамидка следящая за курсором
0
 Аватар для Уф
890 / 725 / 447
Регистрация: 13.07.2015
Сообщений: 2,277
19.04.2017, 09:35
песочница
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
div.dv {
  position: absolute;
  text-align: center;
}
#d1 {
  top:85px;
  left: 100px;
  z-index: 1;
}
#d2 {
  top:95px;
  left: 110px;
  z-index: 2;
}
#d3 {
  top:105px;
  left: 120px;
  z-index: 3;
}
#d4 {
  top:115px;
  left: 130px;
  z-index: 4;
}
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(document).on('mousemove',function(e){
    var corx = e.pageX,
        cory = e.pageY,
        w = $(this).width(),
      h = $(this).height(),
      movx = (w/2-corx)/(w/2),
      movy = (h/2-cory)/(h/2);
    $('div').each(function(i){
        var l = 100 + i*10;
    $(this).css('left', (l-(30*i*movx))+'px' );
    $(this).css('top', (l-(30*i*movy))+'px' );
    });
});
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<div id="d1" class="dv">
<img width=120px src="http://www.tumencev.pp.ua/uploads/2011/01/YAZOO_SMILIES-CONFUSED.png">
</div>
<div id="d2" class="dv">
<img width=100ox src="http://www.tumencev.pp.ua/uploads/2011/01/YAZOO_SMILIES-CONFUSED.png">
</div>
<div id="d3" class="dv">
<img width=80px src="http://www.tumencev.pp.ua/uploads/2011/01/YAZOO_SMILIES-CONFUSED.png">
</div>
<div id="d4" class="dv">
<img width=60px src="http://www.tumencev.pp.ua/uploads/2011/01/YAZOO_SMILIES-CONFUSED.png">
</div>
1
 Аватар для Black_Star
23 / 22 / 17
Регистрация: 06.05.2016
Сообщений: 260
19.04.2017, 09:47  [ТС]
Да, спасибо это похоже на то что мне надо.
Ещё вопрос, можешь глянуть вот этот код https://jsfiddle.net/xrfkzy96/1/

HTML5
1
2
3
<div class="wrappen">
  <div class="block"></div>
</div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.wrappen {
  position: relative;
  width: 200px;
  height: 200px;
  border: 1px solid #000;
}
 
.block {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -15px;
  margin-top: -15px;
  width: 30px;
  height: 30px;
  background-color: green;
}
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var.block = $(".block"),
 
  var doc = {
    w: $(window).width(),
    h: $(window).height(),
    wC: $(window).width() / 2,
    hC: $(window).height() / 2
  };
var mouse = {
  x: 0,
  y: 0
};
 
$(window).resize(function() {
  doc = {
    w: $(window).width(),
    h: $(window).height(),
    wC: $(window).width() / 2,
    hC: $(window).height() / 2
  }
});
 
var currentX = $(window).mousemove(function moveObject(e) {
  return mouse.x = ((e.pageX - doc.w + doc.wC) / (doc.wC / 2));
});
 
 
var currentY = $(window).mousemove(function moveObject(e) {
  return mouse.y = ((e.pageY - doc.h + doc.hC) / (doc.hC / 2));
});
 
console.log(currentX + " = currentX");
console.log(currentY + " = currentY");
 
 
$(window).mousemove(function moveObject(e, currentX, currentY) {
 
  block.css('transform', 'translate(' + currentX + 'px, ' + currentY + 'px)');
 
});
 
 
};
почему мои функции вот в этом примере возвращают объект в переменные currentX и currentY? если мне необходимо просто получить текущие координати для дальнейшей работы с ними? Как реализовать правильно, если есть необходимость в будущем работать с трансформацией (перемещением) нескольких блоков?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.04.2017, 09:47
Помогаю со студенческими работами здесь

Не работает обработчик события
в результате выполнения функции $('#r_1lvl').append('&lt;div class=&quot;re&quot;&gt;&lt;/div&gt;') получаю: &lt;div id=&quot;r_1lvl&quot;&gt; &lt;div...

Привязать обработчик события
Есть кнопка на нажатие привязываю обработчик: $(document).ready(function(){ $('#bn_start').click(function(){ ...

Универсальный обработчик события
У меня такая проблема. Есть поле для ввода текста input type=&quot;text&quot;, и при вводе туда в блоке &lt;h1&gt;&lt;/h1&gt; inner.HTML'ом сразу же...

Обработчик события change
Подскажите пожалуйста, как создать обработчик события, который отслеживает изменение содержимого div или span ? Этот код не работает: ...

Не получается найти обработчик события
Добрый день На сайте nstk.ru (joomla 2.5) не могу найти скрипт который меняет атрибут style вот здесь: &lt;div...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru