2013-09-10 4 views
2

В принципе, я хочу попробовать создать мини-карту с HTML, но я не могу ее понять.Как сделать простую мини-карту в html

Может ли кто-нибудь дать мне образец?

Всего 2 изображения, которые одинаковы, но имеют разные размеры. Один из них маленький, а другой большой, и если вы нажмете на какие-либо координаты маленького изображения, увеличьте изображение, где вы нажали.

Я все еще новичок в HTML и хочу узнать больше, просто нужно образец, чтобы я мог проанализировать, как это сделать.

+3

вы должны разместить код ... вы пытались что-то? – cocco

+0

no i did not ... Im не очень хорошо с кодами –

+0

Создайте img с маленьким изображением и div для большого. образ нуждается в eventlistener, который вызывает функцию findPosition, а фон div - это большое изображение, которое получает шаги, основанные на небольших координатах. – cocco

ответ

4

как я сказал, создайте изображение, найдите координаты мыши над этим изображением.

создать div с тем же изображением и установить положение фона.

замените YOURMAP изображением.

var img,w,h,mu=true,map,MAP='YOURMAP'; 
function pos(e){ 
var x=e.pageX-img.offsetLeft,y=e.pageY-img.offsetTop, 
left=((w/img.width*x)-(map.offsetWidth/2))*-1, 
top=((h/img.height*y)-(map.offsetHeight/2))*-1; 
map.style['background-position']=left+'px '+top+'px'; 
} 
window.onload=function(){ 
img=document.createElement('img'); 
img.onload=function(){ 
    w=this.width;h=this.height; 
    img.style.width='200px'; 
} 
img.src=MAP; 

map=document.createElement('div'); 
map.style.background='#000 url('+MAP+') no-repeat 0 0'; 
map.style.width='200px'; 
map.style.height='200px'; 

document.body.appendChild(img); 
document.body.appendChild(map); 

img.addEventListener('mousedown',function(e){ 
    mu=false;pos(e);e.preventDefault() 
},false); 
img.addEventListener('mousemove',function(e){ 
    mu||pos(e) 
},false); 
img.addEventListener('mouseup',function(e){ 
    mu=true 
},false); 
} 

Demohttp://jsfiddle.net/m3snq/3/ или http://jsfiddle.net/m3snq/6/

, если вы не понимаете, что-то просто спросить ..

+0

круто спасибо за это ... Я попытаюсь воссоздать это, потому что кажется, что его не работает на jsfiddle –

+0

remove window.onload = function() {} – cocco

+0

да, но есть 2 demos i made on jsfiddle ... я тестировал с хром, и они работают. Какой бройзер вы используете? – cocco

Смежные вопросы