Autor | Zpráva | ||
---|---|---|---|
kabanos Profil * |
#1 · Zasláno: 18. 11. 2009, 16:26:44
Ahoj,
na netu jsem našel míchátko barev - http://latrine.dgx.cz/color-mixer-aneb-michatko s příkladem použití - http://knowhow.davidgrudl.com/javascript/color-mixer/stripe/popup.html Chci umístit toto míchátko na své stránky (bude jich tam celkem asi 5), ale potřeboval bych při jeho použití, aby se po výběru barvy nejen změnila barva pozadí příslušného input políčka ale také, aby se následně spustila ještě jedna nová funkce se třemi parametry, např: function proved(barva,x,y) {nějaký kód} Nalezl jsem pravděpodobně i místo, kam ji umístit, ale nevím, jak do ní dostat parametr x a y. Místo je asi ve funkci: function myConfirmHandler(mixer){ var color = mixer.color.toRGB(); mixer.attachedInput.style.backgroundColor = '#' + color.toHEX(); mixer.attachedInput.style.color = color.brightness() > 128 ? 'black' : 'white'; proved(color.toHEX(),x,y); //spuštění mé funkce } Funguje to celé zjednodušeně asi tak, že se míchátko zobrazí spuštěním funkce na onclicku mixer.popup(), potřeboval bych ale asi, aby se to spustilo s mixer.popup(x,y) a tyto parametry se dostali až k funkci myConfirmHandler(), která by spustila tu mojí funkci (viz. výše). Kam co přidat, aby to fungovalo? Snad je to srozumitelné. Moc moc díky |
||
Aichi Profil |
#2 · Zasláno: 18. 11. 2009, 16:53:34
ve funkci popup tedy pridej dva argumenty x,y a uloz si je jako promenne instance, tedy:
this.x = x; this.y = y; pak tam kde pises volej: proved(color.toHEX(),this.x,this.y); |
||
kabanos Profil * |
#3 · Zasláno: 19. 11. 2009, 07:52:44
Dík, ale nějak se to tam nepropasírovalo:-( Nevim ale, zda jsem vše ze tvého návodu pochopil správně.
Udělal jsem toto: volání popup funkce jsem upravil na: onclick="mixer.popup('100','200');" do funkce: DGXColorMixer.prototype.popup = function (x,y) { this.x = x; this.y = y; if (!this.isPopup || !this.attachedInput) return false; this.setColor(this.attachedInput.value); offset = getOffset(this.attachedInput); offset.x += this.attachedInput.offsetWidth; this.elements.main.style.left = offset.x + 'px'; this.elements.main.style.top = offset.y + 'px'; this.elements.main.style.position = 'absolute'; this.show(); return true; } a do funkce: function myConfirmHandler(mixer){ var color = mixer.color.toRGB(); mixer.attachedInput.style.backgroundColor = '#' + color.toHEX(); mixer.attachedInput.style.color = color.brightness() > 128 ? 'black' : 'white'; proved(color.toHEX(),this.x,this.y); } Hlásí to ale pro this.x a this.y undefined[/b] Prosím, kde dělám chybu? Mám ještě jeden poddotazík. Předpokládám, že mou funkci bych(až to správně zapíšu) pak mohl volat i ve funkci: function myChangeColorHandler(mixer){ document.title = '#' + mixer.color.toRGB().toHEX(); proved(mixer.color.toRGB().toHEX(),this.x,this.y); } Dík |
||
kabanos Profil * |
#4 · Zasláno: 19. 11. 2009, 08:03:01
Tak se moc omlouvám za zmatky, ale funguje to vše:-)) Díky
|
||
Časová prodleva: 16 let
|
0