MozillaPL.org - polskie centrum Mozilli

Główne menu:

[JS] przesuwanie obrazków - przekreślone kółko

Jak tworzyć strony WWW zgodnie ze standardami

Moderator: Pomocy?!

[JS] przesuwanie obrazków - przekreślone kółko

Postautor: look997 » 01 lipca 2010, 19:29

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6

Jak chce się przeciągnąć myszą z wciśniętym przyciskiem myszy (mausedown) to pojawia się przekreślone kółko. jak wyłączyć to kółka tak aby się nie pojawiało i nie przeszkadzało w wykonaniu skryptu drag and drop?
Fx
look997
 
Posty: 140
Z nami od: 26 listopada 2006, 15:26

Odp: [JS] przesuwanie obrazków - przekreślone kółko

Postautor: look997 » 02 lipca 2010, 07:21

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6

Przecież takie coś musi być zrobione przy każdym skrypcie dragndrop, na pewno ktoś to wie. :|
Fx
look997
 
Posty: 140
Z nami od: 26 listopada 2006, 15:26

Odp: [JS] przesuwanie obrazków - przekreślone kółko

Postautor: Tomek » 02 lipca 2010, 08:56

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6

Może i ktoś wie, ale nikomu nie chce się sprawdzać każdego skryptu... podaj adres lub kod (z naciskiem na to 1)
"Mym sojusznikiem jest Moc, i potężnym sojusznikiem ona jest." -- Mistrz Yoda
Tomek
Moderator
 
Posty: 9041
Z nami od: 19 sierpnia 2004, 06:52

Odp: [JS] przesuwanie obrazków - przekreślone kółko

Postautor: look997 » 02 lipca 2010, 09:20

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6

Tomek pisze:Może i ktoś wie, ale nikomu nie chce się sprawdzać każdego skryptu... podaj adres lub kod (z naciskiem na to 1)

Niestety adresu brak (jedynie lokalny :) )
Skrypt:
Kod: Zaznacz cały
// załadownie treści
function zaladowanie(){
   
   //zabezpieczenie przd wielokrotnym wykonaniem funkcji
   if (arguments.callee.done) { return; }
   arguments.callee.done = true;
   
   // sprawdzenie pozycji kursora myszy
   function pozycjaMyszy(event){
      var pokaz = document.getElementById("pokaz");
      var pozycjaX = event.clientX - mapa.offsetLeft - mapa.getElementsByTagName("img")[0].offsetLeft + window.pageXOffset + mapa.scrollLeft;
      var pozycjaY = event.clientY - mapa.offsetTop - mapa.getElementsByTagName("img")[0].offsetTop  + window.pageYOffset + mapa.scrollTop;
      //mapa.scrollTop = 0;
      pokaz.innerHTML = "  X: "+ pozycjaX +" Y: "+ pozycjaY;
   }
   var mapa = document.getElementById("mapa");

   mapa.addEventListener('click',pozycjaMyszy, true);
   
   
   // przesuwanie - przyciski
   // szerokość obrazka
   function szerIMG(src) {
      var imageObject = new Image();
      imageObject.src = src;
      var szer = imageObject.width;
      return szer;
   }
   // wysokość obrazka
   function wysIMG(src) {
      var imageObject = new Image();
      imageObject.src = src;
      var wys = imageObject.height;
      return wys;
   }
   
   //  wycina samą liczbę (bez "px")
   function samaLiczba(WidPx){
      WidPxDl = WidPx.length - 2;
      Wid = WidPx.substring(0,WidPxDl);
      return Wid;
   }
   
   // współrzędne lewego górnego roga mapy w widoku
   mapX = 0;
   mapY = 0;
   
   // obrazek mapy
   mapaIMG = mapa.getElementsByTagName("img")[0].src;
   
   // szerokość obrazka
   szerMap = szerIMG(mapaIMG);
   // szerokość widoku
   szerWid = samaLiczba(mapa.style.width);
   // wysokość obrazka
   wysMap = wysIMG(mapaIMG);
   // wysokość widoku
   wysWid = samaLiczba(mapa.style.height);
   
   maxX = szerMap - szerWid;
   maxY = wysMap - wysWid;
   stylMapy = mapa.getElementsByTagName("img")[0].style;
   
   // centrum mapy
   mapX = (szerMap/2)-(szerWid/2);
   mapY = (wysMap/2)-(wysWid/2);
   stylMapy.left="-"+mapX+"px";
   stylMapy.top="-"+mapY+"px";
   
   function fdol(event){
      event.target.addEventListener('mouseup',fdolStop, true);
      event.target.addEventListener('mouseout',fdolStop, true);
      
      lol = 1;

      function fSuwW(){
            
      if(lol == 1){
      setTimeout(function(){
         if(event.target.id == "prawo" && maxX>=mapX){
            mapX += 2;
            stylMapy.left="-"+mapX+"px";
         }if(event.target.id == "lewo" && 0<=mapX){
            mapX -= 2;
            stylMapy.left="-"+mapX+"px";
         }if(event.target.id == "dol" && maxY>=mapY){
            mapY += 2;
            stylMapy.top="-"+mapY+"px";
         }if(event.target.id == "gora" && 0<=mapY){
            mapY -= 2;
            stylMapy.top="-"+mapY+"px";
         }
            fSuwW();
         },1);   
         
      }
      }
      fSuwW();
   }
   
   function fdolStop(event){
      event.target.removeEventListener('mouseup',fdolStop, true);
      event.target.removeEventListener('mouseout',fdolStop, true);
      lol = 5;
   }
   
   var gora = document.getElementById("gora");
   var prawo = document.getElementById("prawo");
   var dol = document.getElementById("dol");
   var lewo = document.getElementById("lewo");
   
   gora.addEventListener('mousedown',fdol, true);
   prawo.addEventListener('mousedown',fdol, true);
   dol.addEventListener('mousedown',fdol, true);
   lewo.addEventListener('mousedown',fdol, true);
   
   // przesuwanie "rączką"
   function suwReka(event){
      if((-(mapX-event.clientX)) > (-(szerMap-szerWid))){
         stylMapy.left = "-"+(mapX-event.clientX)+"px";
      }
      if((-(mapY-event.clientY)) > (-(wysMap-wysWid))){
         stylMapy.top = "-"+(mapY-event.clientY)+"px";
         return false
      }
      
   }
   // wyłączenie przesuwania
   function WylSuwReka(event){
      mapa.getElementsByTagName("img")[0].removeEventListener('mousemove',suwReka, true);
      mapX = -(samaLiczba(stylMapy.left));
      mapY = -(samaLiczba(stylMapy.top));
   }
   function suwRekaDown(event){
      mapa.getElementsByTagName("img")[0].addEventListener('mouseup',WylSuwReka, true);
      //alert(((mapX/2)-event.clientX-mapa.offsetLeft));
      mapX = mapX+event.clientX;
      mapY = mapY+event.clientY;
      mapa.getElementsByTagName("img")[0].addEventListener('mousemove',suwReka, true);
   }
   
   mapa.getElementsByTagName("img")[0].addEventListener('mausedown',suwRekaDown, true);
   
} // koniec tresci


// warunek - istnienie treści
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", zaladowanie, false);
}


body (w miejsce obrazka można wstawić dowolny inny):
Kod: Zaznacz cały
p>

Pozycja: <span onselect="return false" id="pokaz"></span><br>
<map id="mapy_wsp" name="mapy_wsp" style=" position: absolute; z-index: 9;">
  <area shape="rect" coords="0,0,82,126" alt="Sun" />
</map>
<div id="mapa" style="position: relative; width: 800px; height: 800px; overflow: hidden; z-index: 0">
<img src="mapa/cala.PNG" alt="cala_mapa" usemap="#mapy_wsp" style="cursor:move; position: absolute; z-index: 10;">
<div id="gora" style="position: absolute; top:10px; left: 150px; z-index: 11; background: blue; color: white;">Góra</div><div id="lewo" style="position: absolute; top:150px; left: 10px; z-index: 11; background: blue; color: white;">Lewo</div><div id="prawo" style="position: absolute; top:150px; left: 260px; z-index: 11; background: blue; color: white;">Prawo</div><div id="dol" style="position: absolute; top:280px; left: 150px; z-index: 11; background: blue; color: white;">Dół</div>
</div>
</p>
Fx
look997
 
Posty: 140
Z nami od: 26 listopada 2006, 15:26

Odp: [JS] przesuwanie obrazków - przekreślone kółko

Postautor: look997 » 02 lipca 2010, 10:43

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6

To była tylko literówka, zamiast mousedown mausedown wpisałem i ondragstart="return false" pomogło.
Fx
look997
 
Posty: 140
Z nami od: 26 listopada 2006, 15:26


Wróć do Tworzenie stron WWW

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], Google [Bot]

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: