Ik heb me d'r al suf zitten op zoeken en al verschillende scripts bestudeerd waar het wel naadloos werkt, maar ik vind maar geen mogelijke oorzaak waarom het niet soepel loopt.
Ik heb dus een soort "navigator" (als bij photoshop) om te navigeren op een grote prent.
Online voorbeeld staat hier: http://www.joggink.be/snippets/js/navigator/
Het probleem is dat het in Iexplorer heel soepel versleepbaar is, maar in Firefox hapert hij en flikkert hij, net of de positie van de cursor telkens verspringt naar rare posities. Bij het verslepen verplaatst de div zich net iets trager dan de cursor.
Javascript code:
Heeft iemand enig idee aan wat het zou kunnen liggen? Ik verwacht niet dat jullie met een kant-en-klare oplossing afkomen want daar leer ik zelf niets van bij (en dat doen jullie zoiezo niet) maar een duwtje in de rug die me kan helpen het probleem specifieker te vinden zou wel welkom zijn.
Ik heb dus een soort "navigator" (als bij photoshop) om te navigeren op een grote prent.
Online voorbeeld staat hier: http://www.joggink.be/snippets/js/navigator/
Het probleem is dat het in Iexplorer heel soepel versleepbaar is, maar in Firefox hapert hij en flikkert hij, net of de positie van de cursor telkens verspringt naar rare posities. Bij het verslepen verplaatst de div zich net iets trager dan de cursor.
Javascript code:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
| // START TEST if(!window.event && window.captureEvents) { window.captureEvents(Event.MOUSEMOVE|Event.MOUSEOVER|Event.MOUSEOUT|Event.CLICK|Event.DBLCLICK|Event.ONMOUSEDOWN); window.onmouseover = WM_getCursorHandler; window.onmouseout = WM_getCursorHandler; window.onclick = WM_getCursorHandler; window.ondblclick = WM_getCursorHandler; window.onmousedown = WM_getCursorHandler; window.onmousemove = WM_getCursorHandler; window.event = new Object; } function WM_getCursorHandler(e) { window.event.clientX = e.pageX; window.event.clientY = e.pageY; window.event.x = e.layerX; window.event.y = e.layerY; window.event.screenX = e.screenX; window.event.screenY = e.screenY; if ( routeEvent(e) == false ) { return false; } else { return true; } } // EINDE TEST var start_x = 0; var start_y = 0; function start_cursor_trace(){ start_x = event.x; start_y = event.y; document.onmousemove = trace_cpos; } function stop_cursor_trace(){ document.onmousemove = ""; } function trace_cpos(){ var mouse_x = event.x - start_x; var mouse_y = event.y - start_y; document.getElementById('x').value = event.x; document.getElementById('y').value = event.y; start_x = event.x; start_y = event.y; var selector = document.getElementById('selection'); var new_x = selector.offsetLeft + mouse_x; var new_y = selector.offsetTop + mouse_y; pos_right = new_x + 150; pos_bottom = new_y + 50; // window.alert(pos_top + "-" + pos_left + "-" + pos_top2 + "-" + pos_left2); // if (new_y >= 5){// || (pos_left > 799) || (pos_top2 < 166) || (pos_left2 < 1001)){ if (new_x >= 800){ if (pos_right <= 1000){ if (pos_bottom <= 165){ document.getElementById('selection').style.position = "absolute"; document.getElementById('selection').style.top = new_y + "px"; document.getElementById('selection').style.left = new_x + "px"; bg_x = new_x * -5; bg_y = (new_y - 5) * -5; document.getElementById('map').style.backgroundPosition = bg_x + "px " + bg_y + "px"; } } } } } |
Heeft iemand enig idee aan wat het zou kunnen liggen? Ik verwacht niet dat jullie met een kant-en-klare oplossing afkomen want daar leer ik zelf niets van bij (en dat doen jullie zoiezo niet) maar een duwtje in de rug die me kan helpen het probleem specifieker te vinden zou wel welkom zijn.