webForumDet fria alternativet

Smiley i listruta med bild och text

JavaScript

19 svar · 637 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Jag skulle behöva en kod som gör precis som det när ovanför meddelandefältet här på webforum. Smileyikonen får ju en listruta med bild och text som visas i en listruta. Jag behöver en precis sådan som sedan skickar ner koden till meddelandefältet när man väljer den.

Har försökt kika hur det är gjort på denna sidan men är mycket filer och vet inte vad som hör till vad. Behöver något enklare med mindre kod till tack.

Tack på förhand för er hjälp.

Medlem sedan juni 20019 519 inlägg
Medlem sedan dec. 20011 860 inlägg
#3

Tack så mycket :) Men det visas dock ej i en listruta.. Men får kika på det med divs och så..

Medlem sedan dec. 20011 860 inlägg
#4

Jag har gjort så här men jag vill att diven som smileysarna är i kommer ovanpå textarean. Är det möjligt? Nu kommer den under. Fel fel...

<script type="text/javascript">
function showhide(divid){
	thediv = document.getElementById(divid);
	if(thediv.style.display== 'none' ){
		thediv.style.display='block'
	}else{
		thediv.style.display='none'
	}
}
var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function smilie(str) {
    if (ieC) {
	if (typeof cPos != "undefined")
	    cPos.text = str;
	else
	    fObj.value = str;
    }

    else if (typeof window.HTMLTextAreaElement != "undefined")
	fObj.value = fObj.value.substring(0, fObj.selectionStart) + str + fObj.value.substring(fObj.selectionEnd);

    else fObj.value += str;
}

function sC() {
    cPos = document.selection.createRange().duplicate();
}

window.onload = function() {
    fObj = document.forms["form1"].elements["texten"];

    if (ieC) {
	fObj.onclick  = function() { sC(); }
	fObj.onkeyup  = function() { sC(); }
	fObj.onselect = function() { sC(); }
    }
}
</script>

<style>
.dropdown{
	border:1px solid #000000;
	position:absolute;
	background:#c2c9d1;
	height: 100px;
	width: 180px;
	overflow: auto;
	z-index:1000;
	padding:2px;
}

.dropdown ul{
	margin:0px;
	padding:0px;
}
.dropdown ul li{
	list-style:none;
}
.dropdown ul li{
	text-decoration:none;
	color:#4b4e55;
	display:block;
	height:21px;
}
</style>

<form name="form1" id="form1">
	<div id="div2">
		<a href="#" onClick="showhide('div1')"><img src="../ikoner/glad1.png" border="0"></a><br />
		<textarea type="text" name="texten" rows="10" cols="65"></textarea>
	</div>
	<div id="div1" class="dropdown" style="display:none;">

		<ul>
								<li><a href="#" onclick="smilie('&lt;img&gt;blixt&lt;/img&gt;'); return false;"><img src="../ikoner/blixt.png" border="0"></a> &nbsp; &lt;img&gt;blixt&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;bok&lt;/img&gt;'); return false;"><img src="../ikoner/bok.png" border="0"></a> &nbsp; &lt;img&gt;bok&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;clock&lt;/img&gt;'); return false;"><img src="../ikoner/clock.png" border="0"></a> &nbsp; &lt;img&gt;clock&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;cup&lt;/img&gt;'); return false;"><img src="../ikoner/cup.png" border="0"></a> &nbsp; &lt;img&gt;cup&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;date&lt;/img&gt;'); return false;"><img src="../ikoner/date.png" border="0"></a> &nbsp; &lt;img&gt;date&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;dator&lt;/img&gt;'); return false;"><img src="../ikoner/dator.png" border="0"></a> &nbsp; &lt;img&gt;dator&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;flag&lt;/img&gt;'); return false;"><img src="../ikoner/flag.png" border="0"></a> &nbsp; &lt;img&gt;flag&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;glad1&lt;/img&gt;'); return false;"><img src="../ikoner/glad1.png" border="0"></a> &nbsp; &lt;img&gt;glad1&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;glad2&lt;/img&gt;'); return false;"><img src="../ikoner/glad2.png" border="0"></a> &nbsp; &lt;img&gt;glad2&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;handla&lt;/img&gt;'); return false;"><img src="../ikoner/handla.png" border="0"></a> &nbsp; &lt;img&gt;handla&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;heart&lt;/img&gt;'); return false;"><img src="../ikoner/heart.png" border="0"></a> &nbsp; &lt;img&gt;heart&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;kamera&lt;/img&gt;'); return false;"><img src="../ikoner/kamera.png" border="0"></a> &nbsp; &lt;img&gt;kamera&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;lampa&lt;/img&gt;'); return false;"><img src="../ikoner/lampa.png" border="0"></a> &nbsp; &lt;img&gt;lampa&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;ledsen&lt;/img&gt;'); return false;"><img src="../ikoner/ledsen.png" border="0"></a> &nbsp; &lt;img&gt;ledsen&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;mobil&lt;/img&gt;'); return false;"><img src="../ikoner/mobil.png" border="0"></a> &nbsp; &lt;img&gt;mobil&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;moln&lt;/img&gt;'); return false;"><img src="../ikoner/moln.png" border="0"></a> &nbsp; &lt;img&gt;moln&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;molning&lt;/img&gt;'); return false;"><img src="../ikoner/molning.png" border="0"></a> &nbsp; &lt;img&gt;molning&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;mote&lt;/img&gt;'); return false;"><img src="../ikoner/mote.png" border="0"></a> &nbsp; &lt;img&gt;mote&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;musik&lt;/img&gt;'); return false;"><img src="../ikoner/musik.png" border="0"></a> &nbsp; &lt;img&gt;musik&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;oops&lt;/img&gt;'); return false;"><img src="../ikoner/oops.png" border="0"></a> &nbsp; &lt;img&gt;oops&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;regn&lt;/img&gt;'); return false;"><img src="../ikoner/regn.png" border="0"></a> &nbsp; &lt;img&gt;regn&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;sno&lt;/img&gt;'); return false;"><img src="../ikoner/sno.png" border="0"></a> &nbsp; &lt;img&gt;sno&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;sol&lt;/img&gt;'); return false;"><img src="../ikoner/sol.png" border="0"></a> &nbsp; &lt;img&gt;sol&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;sport&lt;/img&gt;'); return false;"><img src="../ikoner/sport.png" border="0"></a> &nbsp; &lt;img&gt;sport&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;star&lt;/img&gt;'); return false;"><img src="../ikoner/star.png" border="0"></a> &nbsp; &lt;img&gt;star&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;tarta&lt;/img&gt;'); return false;"><img src="../ikoner/tarta.png" border="0"></a> &nbsp; &lt;img&gt;tarta&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;tel&lt;/img&gt;'); return false;"><img src="../ikoner/tel.png" border="0"></a> &nbsp; &lt;img&gt;tel&lt;/img&gt;</li>

									<li><a href="#" onclick="smilie('&lt;img&gt;tunga&lt;/img&gt;'); return false;"><img src="../ikoner/tunga.png" border="0"></a> &nbsp; &lt;img&gt;tunga&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;tv&lt;/img&gt;'); return false;"><img src="../ikoner/tv.png" border="0"></a> &nbsp; &lt;img&gt;tv&lt;/img&gt;</li>
									<li><a href="#" onclick="smilie('&lt;img&gt;va&lt;/img&gt;'); return false;"><img src="../ikoner/va.png" border="0"></a> &nbsp; &lt;img&gt;va&lt;/img&gt;</li>

						</ul>
	</div>
</form>

Originalkoden här:
http://cssdesigner.wordpress.com/2008/10/23/onclick-textbox-show-div/

Medlem sedan juni 20019 519 inlägg
#5

Du har inte satt ut några positioner med din position: absolute (top: 0; left:0 osv)

din #div2 kan ha position: relative, och placera in din .dropdown div inne i den så kan du positionera ut ifrån det.

Medlem sedan dec. 20011 860 inlägg
#6

Okej, tackar :)

Medlem sedan dec. 20011 860 inlägg
#7

Kan man föra om så att samma smileyfunktion kan användas för flera formulär på samma sida? Som det är nu går det inte...

Medlem sedan juni 20019 519 inlägg
#8

Det går, men då få du göra någon referens och binda alla dina textareas (fObj sätts i onloaden i exemplet) skall se om jag kan göra någon jQuery version av det (enklast tycker jag :P )

Medlem sedan dec. 20011 860 inlägg
#9

Okej.. Tackar för det :)

Medlem sedan juni 20019 519 inlägg
#10

http://voigt.se/sandbox/wf/asa/

allt i klassen dropDown li span text är det som kommer att infogas in i textboxarna nu.

Medlem sedan dec. 20011 860 inlägg
#11

Tackar :)

Medlem sedan dec. 20011 860 inlägg
#12

Hoppas jag inte är jobbig nu men kan man göra om så man slipper ha med koden för varje smiley och enbart visa bilderna? Så skickar <img>blixt</img> iallafall till textarean?

Medlem sedan juni 20019 519 inlägg
#13

sätt en CSS på att dölja <span> elementet i dropdown, eller alt texten på bilden, beskriv exakt hur du skulle vilja ha din HTML kod så kan vi se vad man kan göra.

Medlem sedan dec. 20011 860 inlägg
#14

Jag tror nog jag vill att de skall kunna listas på bredden och när dropdown rutan tar slut så bryts raden automatiskt. Eller ett fast antal smileys per rad. Det som funkar bäst.. Typ så som nedan..

X X X X X X
X X X X X X
X X X X X X
X X X X X X

Medlem sedan juni 20019 519 inlägg
#15

Det är inte det jag frågar, det är design bit du tar upp, det går att CSS:ar till det, men jag undra hur du vill ha för HTML struktur.

Medlem sedan dec. 20011 860 inlägg
#16

Varje textarea kommer ligga inom en <td></td> tagg. Har en kalender som listas som en vanlig månadskalender med varje dag på en egen rad. Varje dag har en egen <form></form> tagg..

<tr>
      <td>
            Smiley  Textarea  Sparaknapp
      </td>
</tr>

Nåt mer jag skall posta?

Medlem sedan juni 20019 519 inlägg
#17

Är inte riktigt det jag är ute efter (fortfarande).. men jag gjorde om javascriptet att den tar alt texten ifrån bilderna, det är det den kommer lägga in i textarean, och CSS:at om så att de listar webforums smilies med lite luft.

Medlem sedan dec. 20011 860 inlägg
#18

Tackar :) Sorry om jag inte fatta hur du menade .. det med HTML strukturen. Haha..

Medlem sedan juni 20019 519 inlägg
#19

Frågan är hur och var ville du placera din text som skulle infogas, gjorde det till en Lista med bilder med en alt text.

Medlem sedan dec. 20011 860 inlägg
#20

Det ser perfekt ut nu som det är. Alt blir finfint.. :)

153 ms totalt · 2 externa anrop · v20260731065814-full.2ae45ccc
0 ms — hämta statistik (cache)
150 ms — hämta tråd, inlägg och bilagor (db)