flytta lager inom begränsat område

JavaScript

3 svar · 186 visningar · startad av phoyer

Medlem sedan jan. 200137 inlägg
Trådstart#1

har ett script som tillåter besökaren att flytta runt olika lager på skärmen.
detta innebär även att man kan flytta lagren utanför skärmen.
skulle behöva en funktion som begränsar inom vilka x- och y-värden som man kan flytta lagren.
nåt tips ?

Medlem sedan juli 2000836 inlägg
#2

Visa den kod du har, så skall vi nog kunna kompettera den.

Medlem sedan jan. 200137 inlägg
#3

<script>
drag = 0
move = 0

function init() {
window.document.onmousemove = mouseMove
window.document.onmousedown = mouseDown
window.document.onmouseup = mouseUp
window.document.ondragstart = mouseStop
}

function mouseDown() {
if (drag) {
clickleft = window.event.x - parseInt(dragObj.style.left)
clicktop = window.event.y - parseInt(dragObj.style.top)
dragObj.style.zIndex += 1
move = 1
}
}

function mouseStop() {
window.event.returnValue = false
}

function mouseMove() {
if (move) {
dragObj.style.left = window.event.x - clickleft
dragObj.style.top = window.event.y - clicktop
}
}

function mouseUp() {
move = 0
}
</script>

<div id="lager1" onMouseOver="dragObj=lager1; drag=1;" onMouseOut="drag=0" style="visibility: visible; position: absolute; left:5; top:5;"> innehåll </div>

Medlem sedan juli 2000836 inlägg
#4

Ser ut som om din kod bara fungerar i IE, så jag fortsätter väl med det jag oxå. Ändra nouseMove() till detta:

function mouseMove() {
if (move) {
lagerWidth=dragObj.offsetWidth
lagerHeight=dragObj.offsetHeight
if(window.event.x < document.body.clientWidth-lagerWidth && window.event.x >lagerWidth){
dragObj.style.left = window.event.x - clickleft}
if(window.event.y < document.body.clientHeight-lagerHeight && window.event.y >lagerHeight){
dragObj.style.top = window.event.y - clicktop}
}
}

så borde du inte kunna flytta dina lager utanför fönstret.

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)