DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   event.clientX u FF (http://www.devprotalk.com/showthread.php?t=648)

bluesman 11. 02. 2006. 02:24

Ne ignoriše title, naprotiv. :)

bojan_bozovic 11. 02. 2006. 02:30

Sad cu ponovo pred editor, za drugu verziju :)

noviKorisnik 11. 02. 2006. 02:36

Citat:

Originalno napisao bojan_bozovic
@nK
Hocemo li da pisemo copyright za ovo :D

Pa mogu da se potpišem ako treba :-) - to makar znam ...

bojan_bozovic 11. 02. 2006. 03:08

Citat:

Originalno napisao noviKorisnik
Pa mogu da se potpišem ako treba :-) - to makar znam ...

Odlicno, to cemo i uraditi.

@bluesman

Here it comes...

Kôd:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>popup test</title>
<script type="text/javascript">
/* copyright (C) 2006
Bojan Bozovic (http://maestitia.net/)
Dejan Katasic (http://korisnik.blog.hr/)
:) */
function show_popup(e) {
var evt=e;
var tekst=document.createTextNode(this.title);
if (typeof (e) != 'object') evt = event;
var popup=document.getElementById('popup');
var x,y;
if (self.pageYOffset) // all except Explorer
{
x = self.pageXOffset;
y = self.pageYOffset;
}
else if (document.documentElement && document.documentElement.scrollTop)
// Explorer 6 Strict
{
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
}
else if (document.body) // all other Explorers
{
x = document.body.scrollLeft;
y = document.body.scrollTop;
}
popup.appendChild(tekst);
this.title="";
popup.style.visibility="visible";
popup.style.top=y+evt.clientY+10+"px";
popup.style.left=x+evt.clientX+10+"px";
}
function hide_popup() {
var popup=document.getElementById("popup");
this.title=popup.innerHTML;
popup.innerHTML="";
popup.style.visibility="hidden";
}
function init(){
document.body.innerHTML=document.body.innerHTML+"<div class='popup' id='popup'></div>";
var links = document.getElementsByTagName('a');
  for (var i = 0; i < links.length; i++) {
    if (links[i].title!="") {
    links[i].onmousemove=show_popup;
    links[i].onmouseover=show_popup;
    links[i].onmouseout=hide_popup;
    }
  }
}
</script>
<style type="text/css">
div.popup {
color:white;
background:black;
border:1px solid red;
position:absolute;
visibility:hidden;
}
</style>
<body onload="init()">
<p>
<a title="DPT Forums" href="http://www.devprotalk.com">DPT</a>
</p>
</body>
</html>


nixa 11. 02. 2006. 03:20

E dobro je ovo, samo jos da stavite neku fancy transparenciju .. :)

bojan_bozovic 11. 02. 2006. 07:56

Citat:

Originalno napisao nixa
E dobro je ovo, samo jos da stavite neku fancy transparenciju .. :)

Samo sto to nije na mojoj TO-DO listi, stavi je na svoju, a ja ti dajem hintove (inace necemo da te ubacimo gore :p)
Kada se show_popup pozove moras da kreiras novi popup, sa document.createElement ili document.body.innerHTML i da ga uklonis iz DOM stabla nakon hide_popup. Zasto? Da bi mogao da imas vise popupova sto ti je nuzno za fadeout efekt
Fadeout - samo menjas stilove opacity;-khtml-opacity,-moz-opacity i filter:Alpha(opacity) ili kako vec bese za IE u petlji.
Ovo vec sljaka na http://maestitia.net/ meni zasada bolje ne treba.

bojan_bozovic 12. 02. 2006. 02:57

Sto vise radim na ovome, sve vise lici na overlib :)
 
Kôd:

function show_popup(e){
var evt=e;
var tekst=document.createTextNode(this.title);
if(typeof(e)!='object')evt=event;
var popup=document.getElementById('popup');
var x,y,ix,iy,ox=10,oy=10;
if (self.innerHeight&&self.pageYOffset) // all except Explorer
{
ix = self.innerWidth;
iy = self.innerHeight;
x=self.pageXOffset;
y=self.pageYOffset;
}
else if (document.documentElement && document.documentElement.clientHeight&&document.documentElement.scrollTop)
// Explorer 6 Strict Mode
{
ix = document.documentElement.clientWidth;
iy = document.documentElement.clientHeight;
x=document.documentElement.scrollLeft;
y=document.documentElement.scrollTop;
}
else if (document.body) // other Explorers
{
ix = document.body.clientWidth;
iy = document.body.clientHeight;
x=document.body.scrollLeft;
y=document.body.scrollTop;
}
popup.appendChild(tekst);
this.title="";
if(ix<(evt.clientX+ox+popup.clientWidth)){
        ox=-(popup.clientWidth);
}
if(iy<(evt.clientY+oy+popup.clientHeight)){
        oy=-(popup.clientHeight);
}
popup.style.visibility="visible";
popup.style.top=y+evt.clientY+oy+"px";
popup.style.left=x+evt.clientX+ox+"px";}
function hide_popup(){
var popup=document.getElementById("popup");
this.title=popup.innerHTML;popup.innerHTML="";
popup.style.visibility="hidden";
}
function init(){
var agt=navigator.userAgent.toLowerCase();
var is_ie    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_mac    = (agt.indexOf("mac")!=-1);
if(document.getElementById&&!(is_ie&&is_mac)){
document.body.innerHTML=document.body.innerHTML+"<div class='popup' id='popup'></div>";
var links=document.getElementsByTagName('a');
for(var i=0;i<links.length;i++){
if(links[i].title!=""){
links[i].onmousemove=show_popup;
links[i].onmouseover=show_popup;
links[i].onmouseout=hide_popup;}}}}

Fixed: MSIE/Mac izbacen
Fixed: popup se prikazuje iznad kursora ako je link suvise nisko

ivanhoe 12. 02. 2006. 10:25

Citat:

Originalno napisao bojan_bozovic
Kada se show_popup pozove moras da kreiras novi popup, sa document.createElement ili document.body.innerHTML i da ga uklonis iz DOM stabla nakon hide_popup. Zasto? Da bi mogao da imas vise popupova sto ti je nuzno za fadeout efekt

a zasto? Zar ne moze samo da se menja transparencija postojecem div-u?
Imao sam nekih problema nedavno sa transparencijom, pa ajde molim te pojasni ovo, mozda mi ustedis besane noci :)

Btw, jedan predlog...kad se doda ovaj overlay, trebalo bi pobrisati title za linkove (ili alt ako je slika), to bi trebalo da resi problem sa baloncicem koji otvori browser...

bojan_bozovic 12. 02. 2006. 10:34

Pa i brise title, ne brise alt u slikama, to ce i meni da treba, ali se to lako doda, tako sto ubacimo i init za slike ako imaju title, pa brisemo i alt, veruj na rec ;-)

Ako menjas transparenciju postojecem divu a korisnik predje na sledeci link, sta onda biva? Zato treba vise od jednog diva da bi imao dobar fadeout kad korisnik predje na sledeci link, a fadeout se nije zavrsio.

bojan_bozovic 12. 02. 2006. 11:46

@ivanhoe
Kôd:

function init(){
var agt=navigator.userAgent.toLowerCase(),i;
var is_ie=((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_mac=(agt.indexOf("mac")!=-1);
if(document.getElementById&&!(is_ie&&is_mac)){
        document.body.innerHTML=document.body.innerHTML+"<div class='popup' id='popup'></div>";
        var links=document.getElementsByTagName('a');
        var slike=document.getElementsByTagName('img');
        for(i=0;i<links.length;i++){
                if(links[i].title!=""){
                        links[i].onmousemove=show_popup;
                        links[i].onmouseover=show_popup;
                        links[i].onmouseout=hide_popup;
                        }
                }
                if (is_ie) { // nasli smo IE
                        for(i=0;i<slike.length;i++){
                                slike[i].alt=""; // brisi alt property na svim slikama
                                }
                        }
        }
}



Vreme je GMT +2. Trenutno vreme je 22:24.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.