Prijsaanpassing bij meerdere stuks.

Status
Niet open voor verdere reacties.
Snap-niet 1,2 & 3
Een beetje verwarrend ook è !?:confused:
Met (back)kleur bedoel ik de kleur van de sticker die verandert (negatief image met BackGroundcolor).
Daarnaast heb je de kleur-selector (lijst).
Er zijn verschillende reeksen stickers die dezelfde detail-pagina gebruiken, hier detail-50mm_test.
Deze stickers hebben maar 1 kleur (zwart) en deze veranderen samen met de kleur-selector.
Beide gebruiken dus hetzelfde script, hier changeBG_test :
[JS] var imgSrc=document.getElementById('Image').src; // transparant img onthouden
function changeBG(){
var colorSelectie=document.getElementById('stickersBE_1_Color_Add');
var colorname=colorSelectie.options[colorSelectie.selectedIndex].value; // string
var options=colorSelectie.getElementsByTagName('option'); // alle opties
for (i=0; i<options.length; i++){ // langslopen en signaleren welke gekozen is
if (options.value==colorname){ // zo ja, dan inputvakje op juiste kleuren brengen
colorSelectie.style.color=options.style.color;
colorSelectie.style.backgroundColor=options.style.backgroundColor;
colorSelectie.blur(); // deselecteren (voor IE)
document.getElementById('Image').style.backgroundColor=options.style.backgroundColor;
}
}
}
changeBG();[/JS]
Als je nu beide pagina's opent in FF en/of Chrome, zie je dat de selector niet geladen wordt. Deze blijft "wit".
Verwijder je echter de bovenste regel (var imgSrc=document.getElementById('Image').src; // transparant img onthouden), dan is de selector wèl gekleurd bij het laden van de pagina. Let wel dat je dit doet met een lege cache.



Nadeel zonder wissel-img
Laat de afbeelding met de "light grey" maar vallen voor nu.:rolleyes:
 
Ahhh! Gesnapt! (2x) :D

Het bloemetje doet het goed, daar wordt de selector meteen zwart.
Het honden-silhouet doet het niet goed, daar blijft ie wit. Klopt! Die pagina geeft een scriptfout:
Tijdstempel: 30-11-2012 21:22:23
Fout: TypeError: document.getElementById("Image") is null (=kan niet gevonden worden)
Bronbestand: http://www.stickers.be/changeBG_test.js
Regel: 1
Waarom bestaat er geen element met id="Image"?
Omdat het niet bestaat! :P
Bij het bloemetje staat er als invoer:
Code:
<div id="Back_Transp_PNG">
    <img src="images/productShots/large/Bloemen/1-Color/bloemen-037.png" 
    alt="bloem-037 sticker" [COLOR="#B22222"]name="Image" id="Image"[/COLOR] title="" />
</div>:
Maar bij het silhouet:
Code:
<div id="Back_PNG">
    <img src="images/productShots/large/Honden/Silhouet/Afghaan 1sil.gif" 
    alt="Afghaan 1sil sticker" [COLOR="#B22222"]name="ImageNoTrans" id="ImageNoTrans"[/COLOR] title="" />
</div>
Betrapt!
(Zei ik niet: "Dat kan dan alleen als er een fout in de definitie zit: bv. als er geen id="Image" meer in de html staat.") ;)

Maar is het nu zo, dat de silhouet-stickers (die dus kennelijk allemaal de id="ImageNoTrans" hebben) alleen maar in het zwart geleverd worden, en niet in andere kleuren?
Als dat zo is, dan mag er eigenlijk helemaal geen kleur-selector zijn! - Hoe zit dat?

(Met de enorme hoeveelheid mogelijkheden, die allemaal op deze ene pagina samenkomen, valt het allemaal niet mee: puur gecompliceerd! Maar we komen er wel.)

Groetjes,
CSShunter
 
Laatst bewerkt:
ok ... ik kan je volgen :)

Asp
Code:
        <td class="Detail_Image">
<% If (rsDetail.Fields.Item("ProductCatID").Value) = 32 Then %>
          <div id="Back_Transp_PNG"><img src="<%=(rsDetail.Fields.Item("ProductImage").Value)%>" alt="<%=(rsDetail.Fields.Item("ProductName").Value)%> sticker" name="Image" id="Image" title="" /></div>
<% Else %>
          <div id="Back_PNG"><img src="<%=(rsDetail.Fields.Item("ProductImage").Value)%>" alt="<%=(rsDetail.Fields.Item("ProductName").Value)%> sticker" name="Image" id="Image" title="" /></div>
<% End If %>
          </td>
Voor images in kleur (bloemen hier met ProductCatID=32) geeft dat dit :
Code:
<div id="Back_Transp_PNG">
    <img src="images/productShots/large/Bloemen/1-Color/bloemen-037.png" 
    alt="bloem-037 sticker" name="Image" id="Image" title="" />
</div>:
en voor images zonder kleur (zwart dus, hier honden) geeft dat dit :
Code:
<div id="Back_PNG">
    <img src="images/productShots/large/Honden/Silhouet/Afghaan 1sil.gif" 
    alt="Afghaan 1sil sticker" name="ImageNoTrans" id="ImageNoTrans" title="" />
</div>
In deze testpagina zijn de ID's hetzelfde, met als resultaat dat de achtergrond van de hond ook verandert.
Vandaar dat ik deze DIV een verschillende ID gegeven had.


Maakt dit het een beetje duidelijker ? :)


Het is misschien beter om hiervoor 2 aparte scripts te gebruiken ? :rolleyes:
 
Laatst bewerkt:
Ja, ik snap 'm helemaal. En het regeltje:
[JS]var imgSrc=document.getElementById('Image').src; // transparant img onthouden[/JS]
kan dus gewoon uit het script (toch nergens voor nodig), dan gaat het altijd goed.
  • Het kan nog steeds allemaal in 1 script.

Maar er moet misschien nog wel iets anders gebeuren, want er staat nog een vraag open:
Maar is het nu zo, dat de silhouet-stickers (...) alleen maar in het zwart geleverd worden, en niet in andere kleuren?
Als dat zo is, dan mag er eigenlijk helemaal geen kleur-selector zijn! - Hoe zit dat?
Oftewel: is bij de silhouetten het silhouet altijd zwart, en de rest altijd transparant? Of blijft het silhouet zwart en kan de rest wel van kleur veranderen?

Ben benieuwd!
CSShunter

[edit]Ik geloof dat ik het antwoord al weet[/edit]
Bij de gewone pagina stickers.be/detail-50mm.asp?ProductID=1318&CatID=33 zie ik de kleur-selector niets doen. Dus silhouetten altijd zwart+transparant?
 
Laatst bewerkt:
Ok ... dan laten we dat eerste regeltje gewoon weg.:thumb:


Met de kleur-selector kies je de kleur waarin je de sticker wenst.
Je kan alle stickers in alle kleuren van de selector bestellen.
Bij sommige pagina's (bvb bloemen) verandert de afbeelding (backcolor) in de gekozen kleur. Dit is gewoon een extraatje op het scherm.
Maar om dit te doen met àlle afbeeldingen ... vereist veeel tijd en werk ! :rolleyes:

Heb je hem ? ;)
 
Jaha, ik heb 'm! :)
Je kan alle stickers in alle kleuren van de selector bestellen.
Ik kan dus bv. ook een Orange of Striking Blue silhouet van de Afghaanse windhond bestellen. :d

Dan hoeft er in het script van de silhouetten géén "kleurverhinderaar" bij, die zorgt dat het palet niet getoond wordt (zoals dat al keurig gebeurt bij de meerkleurenstickers als een meerkleuren-blommetje). Dat was wat ik me afvroeg > script hoeft daarvoor niet aangepast te worden.

Blijft over: moet dan niet de ColorChanger voor het selector-vakje toegevoegd worden bij de silhouetten-stickers, zodat men (alleen in het selector-vakje, niet in de afbeelding) ziet wat gekozen is (net als bij de unikleur-bloemetjes, waar de afbeelding wel mee verandert)? - Of zit dat al in de planning?
 
Laatst bewerkt:
Blijft over: moet dan niet de ColorChanger voor het selector-vakje toegevoegd worden bij de silhouetten-stickers
Diè snap ik niet goed ? :o

Dit is de detail-pagina met de silhouetten.
(Of dit nu silhouetten zijn of iets anders ... dat maakt niets uit ;))
Voor andere stickers, bvb "stuff", is dit hetzelfde maar is de minimum te kiezen grootte verschilt.

Je ziet hier toch de kleur die je gekozen hebt !? ... Of bedoel je nog iets anders ?:confused:


Ik ben bijna rond hier met alle detail-pagina's, en het lijkt nu in orde ... lijkt zeg ik wel.:D
 
Je ziet hier toch de kleur die je gekozen hebt !?
Zeker weten! :thumb:
Ik had gekeken (link in nr. #64) bij de draaiende site, en niet bij de testversie in je link hierboven (de recentste testversies weet ik niet blindelings te vinden).
Dus loos alarm: dan is alles in orde, en hoeft het tzt alleen nog maar doorgevoerd te worden.

=============
... bijna rond hier met alle detail-pagina's
Een kwestie van volhouden bij zo'n mega-project! ;)
Je zal wel een flink veranderingen-logboek en ToDo-document hebben om alles bij te houden en de draad niet te verliezen! :)
 
veranderingen-logboek en ToDo-document
Een kopie van de volledige site alvorens veranderingen worden doorgevoerd. Er bestaan dus reeds verschillende versies. ;)


Ik "denk" dat deze discussie ver rond is ... waarvoor zeer hartelijk bedankt natuurlijk :thumb:
 
Alles werkt zoals het moet, maar ... jajajaah ... toch nog 1 troubletje :(

Op de pagina waar je een tekst kan ingeven voor een sticker, zijn er 3 kleuren-selectors.:rolleyes:
Het zijn 3 id's :
Color_Add_1 : bovenste tekst
Color_Add_2 : onderste tekst
colorBG : achtergrond
Color_Add_1 is goed zoals je ziet, maar de 2 andere krijg ik niet zoals het zou moeten (blur).
 
1 trubbeltje maar? ;)



Aldus gemaakt:
Color_Add_1 : bovenste tekst > was al o.k.

Color_Add_2 : onderste tekst
Klopt, de functie changeBG_SelectColor_EigenTekst() werkt alleen maar op de bovenste: getElementById('Color_Add_1').
Die kopiëren we dus en zetten er een nummertje 2 voor in de plaats.

Om die erbij te roepen, moet deze in de html ingezet worden in de selector <select id="Color_Add_2" ...>; die krijgt nu:
HTML:
...
    <select name="Color_Add_2" id="Color_Add_2" class="textfieldColor_no_lenght" 
    onchange="kleurhex2(this.value);changeBG_SelectColor_EigenTekst2()">
...

colorBG : achtergrond
Klopt, de functies changeBG(color) en changeBG2(color) veranderen alleen de bg van de 2 bovenstroken, en niet die van de selector <select id="colorBG" ...> zelf.
Die kan dus aan de functies worden toegevoegd.
Verder veranderen de 2 bovensten altijd gelijktijdig van bg-kleur, dus is het onnodig om daar 2 functies voor te gebruiken. Het kan ook in 1 klap met:
[JS]function changeBG(color) {
document.getElementById('BackColor').style.background=color; // bg bovenstrook 1
document.getElementById('BackColor2').style.background=color; // bg bovenstrook 2
document.getElementById('colorBG').style.background=color; // bg selector
}[/JS]
  • De functie changeBG2(color) komt dan te vervallen, waarmee een verse eigenTekst-nw.js uit de bloemkool is gekomen.

De changeBG2(color) kan nu dus ook uit de html gehaald worden.
En bij de bg-kleurinstelling blijven de tekstkleuren onveranderd, zodat de functie changeBG_SelectColor_EigenTekst() helemaal niet aangeroepen hoeft te worden: weg ermee, snelheidswinst!
Daarmee blijft maar een kort regeltje over: :)
HTML:
...
    <select name="colorBG" id="colorBG" class="textfieldColor" 
    onchange="changeBG(this.value)">
...
De changeBG2('WhiteSmoke') gaat tenslotte ook uit de body-onload, die wordt dan alleen:
HTML:
...
<body onload="changeBG('WhiteSmoke');berekenAlles()">
...
=======

Als dit bezonken is heb ik misschien nog wat voor je: wordt vervolgd!

Met vriendelijke groet,
CSShunter
 
klaar ... behalve bij het kiezen van de achtergrond (colorBG) bijft de selectie nog hangen.
Waarschijnlijk omdat er geen "colorSelectie.blur(); // deselecteren (voor IE)" is toegevoegd, ik zie dit toch nergens. :confused:


EDIT :
Ik heb de code voor colorBG toegevoegd, maar dan werkt de achtergrond niet meer : :confused:
[JS]function changeBG(){
var colorSelectie=document.getElementById('colorBG');
var colorname=colorSelectie.options[colorSelectie.selectedIndex].value; // string
var options=colorSelectie.getElementsByTagName('option'); // alle opties
for (i=0; i<options.length; i++){ // langslopen en signaleren welke gekozen is
if (options.value==colorname){ // zo ja, dan inputvakje op juiste kleuren brengen
colorSelectie.style.color=options.style.color;
colorSelectie.style.backgroundColor=options.style.backgroundColor;
colorSelectie.blur(); // deselecteren (voor IE)
}
}
}
changeBG();[/JS]

nog eens EDIT :
Nu werkt het behalve als je op de "wis-knop" klikt, blijft er nog een stukje van de gekozen tekstkleuren in de selectors zichtbaar.selector1.jpg
Dat krijg ik niet weg.



Als dit bezonken is heb ik misschien nog wat voor je: wordt vervolgd!
... zeer nieuwsgierig ! :D
 
Laatst bewerkt:
Hoi Yammaski,

1. Blurrie-blurrie
... Waarschijnlijk omdat er geen "colorSelectie.blur(); // deselecteren (voor IE)" is toegevoegd, ik zie dit toch nergens.
Ja, klopt; alle andere dingen had ik op de IE-blur gecheckt, deze was de dans ontspringen. :rolleyes:

=======
2. Edit + Edit
... Nu werkt het ...
Mooi zo! De nieuwe functie changeBG_SelectColor_EigenTekst3() die je hiervoor hebt aangemaakt, geeft tegelijk nog een andere verbetering: de contrasterende tekstkleur bij de geselecteerde kleur wordt nu ook overgenomen na de selectie.
Prima-de-luxe! :thumb:

=======
3. Reset
... werkt het behalve als je op de "wis-knop" klikt...
Ja, die had ik ook al opgemerkt. Dwz. midden in de nacht werd ik wakker en toen viel het me in. ;)
Het makkelijkst is om er een functie'tje van te bakken, die dat verzorgt. Daarmee kan dan meteen de bovenste/onderste (als die is aangeklikt) gereset worden naar de blanco toestand van het begin:
[JS]function resetColorSelectorsAndYN(){
document.getElementById('Color_Add_1').style.backgroundColor='black';
document.getElementById('Color_Add_1').style.color='white';
document.getElementById('Color_Add_2').style.backgroundColor='black';
document.getElementById('Color_Add_2').style.color='white';

document.getElementById('bovenste').className='textfield_Boven_Onder';
document.getElementById('onderste').className='textfield_Boven_Onder';
}[/JS]

In de html wordt deze dan toegevoegd aan het rijtje:
HTML:
...
<input name="Reset" type="reset" class="CancelButton" id="button" 
onclick="if(!confirm('Je wist niet alleen je tekst, maar zet ook de lettertypes en kleuren terug op standaard ! &nbsp;&nbsp;&nbsp;&nbsp;Wil je toch Doorgaan ?')) return false; 
changeBG('WhiteSmoke'); changeBG2('WhiteSmoke'); changeFont('Arial'); changeFont2('Arial'); kleurhex('Black'); kleurhex2('Black'); 
addText(''); addText2(''); resetColorSelectorsAndYN();" value="wis" />
...

(Misschien kan je van de knop "Wis" nog "Wis alles" maken, dan is men 2x gewaarschuwd; er is ruimte genoeg om de I en het invoerveld wat naar links te schuiven.)
=======

4. Tegen de nieuwsgierigheid ;)
Nu alle backgrounds zo vrolijk alle gekozen kleuren tonen, vind ik de groen-oranje kleuren en de kleurenwissel van de "Kies bovenste" en "Kies onderste" wat teveel van het goede worden.
Ik zou de gekozen optie groen maken, en de niet-gekozen gewoon blanco laten/maken.
Voor de duidelijkheid kan je ook een "deze gekozen!" melding maken bij de tekstweergave in de bovenste of onderste, zodat men bij de klik op het winkelwagentje altijd makkelijk ziet wat men doet.
Dat ziet er dan zo uit:



De benodigdheden zijn:
Een div'je erbij in de html:
HTML:
<div id="Bord_EigenTekst">
	<div id="BackColor">
		<div id="TextColor"><span></span></div>
		<div id="BovensteGekozen">deze gekozen!</div>
	</div>
	<div id="BackColor2">
		<div id="TextColor2"><span></span></div>
		<div id="OndersteGekozen">deze gekozen!</div>
	</div>
</div>
Uitbreiding van de noyes(yn) functie (staat nu in de html v/d pagina):
[JS]function noyes(yn){
document.getElementById('bovenste').className=yn?'textfield_Boven':'textfield_Onder';
document.getElementById('onderste').className=yn?'textfield_Onder':'textfield_Boven';
if (document.getElementById('bovenste').className=="textfield_Boven"){
document.getElementById('BovensteGekozen').style.display="inline-block";
document.getElementById('OndersteGekozen').style.display="none";
}
else {
document.getElementById('BovensteGekozen').style.display="none";
document.getElementById('OndersteGekozen').style.display="inline-block";
}
}[/JS]
En de styling (staat nu ook in de html v/d pagina):
Code:
/* aangepast */
.textfield_Onder {
	background: transparent; 
	}
/* toegevoegd: */
#BackColor,
#BackColor2 {
	position: relative;
	}

#BovensteGekozen,
#OndersteGekozen { 
	position: absolute;
	left: 0;
	margin-left: 5px;
	bottom: 0;
	margin-bottom: 5px;
	padding: 0 3px 1px 3px;
	border: 1px solid green;
	border-radius: 4px;
	background: white;
	color: green;
	text-align: left;
	display: none;
	}

Trouwens, de basisprijs gewoon opnemen in het formaat-vakje (ipv toeslag vermelden + apart vakje voor de basisprijs zonder korting) is ook een uitvinding! :D Dat scheelt weer weer een vakje en maakt het wel zo duidelijk. Ga je dat ook doen op de andere pagina's?

PS:
Moet bij de eigen tekst het icoontje voor het formaat niet zonder de hoogte-pijltjes (want je kunt alleen de breedte opgeven)?

Detail-Grootte.gif
Met vriendelijke groet,
CSShunter
 
Dat is opgelost ... pfff.:D


4. Tegen de nieuwsgierigheid
groen-oranje kleuren en de kleurenwissel van de "Kies bovenste" en "Kies onderste" wat teveel van het goede worden
... is aangepast, teveel is idd teveel.



een "deze gekozen!" melding maken bij de tekstweergave in de bovenste of onderste
... mooi, maar ik heb het kadertje rechthoekig gemaakt, dat past beter bij de stijl vd site.
EDIT : Wat vind je van deze keuze-melding ? :cool:



de basisprijs gewoon opnemen in het formaat-vakje
... dat was een noodoplossing toen ik de pagina ontwierp omdat er nergens nog een plaatsje vrij was (esthetisch gezien).
Maar uiteindelijk, zoals je zegt, is het wel een goede oplossing èn is het nog duidelijker bovendien ook.



icoontje voor het formaat niet zonder de hoogte-pijltjes
... is ook aangepast nu.





Wat zal het volgende zijn !? ;)
 
Laatst bewerkt:
Wat vind je van deze keuze-melding ?
Prima toch! :cool:

=======
Wat zal het volgende zijn !? ;)
Ik weet wel iets. :P

=======

1. Het volgende
Dat is deze: bij een "Wis" worden nog niet de vinkjes gereset op alle twee blanco. De regeltjes:
[JS]...
document.getElementById('BovensteGekozen').style.display="none";
document.getElementById('OndersteGekozen').style.display="none";[/JS]
... moeten nog opgenomen worden in de changeBG_SelectColor_EigenTekst_TEST.js

=======

2. En de volgende :)

Vinkjes...
Valt me opeens in: als mensen van die vierkante lege aanvink-hokjes zien
geselecteerd-ori.png
, willen ze die ook aanklikken.
Maar de twee lege vakjes bij de boventeksten reageren daar niet op - je kunt ze ook niet op die manier wisselen... :rolleyes:

De bediening gaat alleen via de radio-buttons daar vrij ver vandaan.
Dan is mijn suggestie: geen lege vakjes tonen, alleen het vakje dat aangevinkt is via de radio-button. Dat is alvast de helft van de verwarring minder (de andere helft is als mensen het vinkje willen uitklikken, maar bij gebrek aan een tweede vakje zal dat niet zo'n vaart lopen).
Wat je verder nog kunt doen: de vierkante border uit de styles vandaan halen, en er een image met een rond kadertje van maken; dan lijkt het minder op een bedienbaar aankruisvakje.
geselecteerd.png




Realisatie:
In de html de verpakkingsdiv's #BovensteKiesVak en #OndersteKiesVak verwijderd, dan kan het scriptje Eigen_Tekst_NoYes.js hetzelfde blijven, en is er minder html nodig:
HTML:
<div id="Bord_EigenTekst">
	<div id="BackColor">
		<div id="TextColor"><span></span></div>
		<div id="BovensteGekozen"></div>
	</div>
	<div id="BackColor2">
		<div id="TextColor2"><span></span></div>
		<div id="OndersteGekozen"></div>
	</div>
</div><!-- einde div Bord_EigenTekst -->
In de css kunnen de styles van de oude verpakking overgeheveld worden, als het img er als background-image in gezet wordt:
Code:
#BovensteGekozen,
#OndersteGekozen {
	width: 23px;
	height: 23px;
	position: absolute;
	left: 3px;
	bottom: 3px;
	background: url(http://bliksekaters.nl/tests/images/geselecteerd.png);
	display: none;
	}

=======

3. En de volgende :d

Plakwerk...
Als iemand met een rechtsklik van de muis een gekopieerde tekst inplakt, dan komt er niets in de twee bovenvakken te staan. Ook als je daarna op een kleurselector of iets anders klikt blijft de hele live tekst bovenin weg: geen letters, geen lettertype, geen kleur, niks... :rolleyes:
Eigenlijk hetzelfde als eerder met de aantallen inplakken, maar mensen zullen eerder gekopieerde tekst dan een gekopieerd getal inplakken.

Nu reageert een onchange jammer genoeg niet op inplakken, maar je kan wel een "focus-verklikker" inbouwen:
  • In het begin is er niets: var textFieldFocus=0.
  • Bij inplakken van een tekst zal men moeten beginnen met een klik in het tekst-vakje: textFieldFocus=1.
  • Tegelijkertijd laat je de invulcontrole plaatsvinden (als er "Typ hier je tekst" staat, moet het vakje leeg worden).
  • Dat is de eerste helft van de nieuwe functie checkTextFilling(), die in plaats komt van de functie clearText(this).
  • Nu zet je bij de onblur="..." niet alleen de invulcontrole, maar je zet eerst de in het vakje ingegeven tekst in de twee voorbeeldstroken bovenaan: addText(this.value); addText2(this.value); .
  • Daarna wordt de focus-verklikker aangezet: var textFieldFocus=0, en de checkTextFilling() kan dan opgeroepen worden om in de tweede helft te controleren of misschien via rechtermuisknop de hele tekst weggeknipt is. In dat geval komt er weer "Typ hier je tekst" te staan.
  • Zodra je dus na inplakken van een tekst ergens anders op klikt (je zal wel moeten), komt de ingevoerde tekst bovenin te staan.
  • De onkeyup blijft onveranderd: dan hoeft alleen de nieuwe tekst geplaatst te worden. De onblur zorgt dan dat als alles via toetsenbord gewist is, er daarna ook weer "Typ hier je tekst" komt te staan.
Dat was dus even puzzelen. ;)
[JS] var textFieldFocus=0;

function checkTextFilling(){
var field=document.getElementById('stickersBE_1_EigenTekst_Add');

if (textFieldFocus==1) { // als focus = dwz bezig met invullen
if (field.value=='Typ hier je tekst') { // dit is het geval bij start of wissen of reset
field.value = ''; // dan bij focus: standaardtekst invoerveld wissen
}
}
if (textFieldFocus==0) { // want niets doen als focus (dan bezig met invullen en mag niets veranderen)!
if (field.value=='' || field.value=='Typ hier je tekst') { // als niets gedaan is of leeg gelaten of gewist
field.value = 'Typ hier je tekst';
addText(''); addText2(''); // ook eventuele boventeksten wissen
}
}
}[/JS]

In de html wordt het:
HTML:
<!-- deze: -->
    
    <input name="stickersBE_1_EigenTekst_Add" type="text" class="textfieldEiTekst" id="stickersBE_1_EigenTekst_Add" 
    onfocus="textFieldFocus=1; checkTextFilling();"
    onblur="addText(this.value); addText2(this.value); textFieldFocus=0; checkTextFilling(); " 
    onkeyup="addText(this.value); addText2(this.value);" 
    value="Typ hier je tekst" size="48" maxlength="40" />&nbsp;&nbsp;

=======

4. En de volgende :d

De kleuren van het tekst-invulvakje...
Het oranje "Typ hier je tekst" op de donkere achtergrond is voor mij slecht leesbaar. Hetzelfde geldt bij het invullen: dan is het oranje op de lichte achtergrond slecht leesbaar. Het oranje van de eigen tekst kan verder verwarrend werken: dat is alleen maar voor de mooi van de pagina-opmaak, en heeft niets te maken met de gekozen kleur van de sticker!
Na invulling van mijn eigen tekst, als ik iets anders ga doen op de pagina, wisselt de oranje tekst op lichte achtergrond weer in oranje op donkere achtergrond. Dat leidt m'n aandacht af van wat ik aan het doen ben; deze kleurwisseling heeft geen betekenis voor de stickerkleur, en heeft verder ook geen functie: als ik eenmaal iets heb ingevuld en dat wil veranderen, hoef ik geen verandering bij focus/blur op het vakje (dan zie ik aan de knipperende cursor wel dat ik in het invulvakje beland ben).
Eigenlijk is het opvallende contrast alleen maar nodig is het begin, als er "Typ hier je tekst" staat.

Suggesties:
  • Het oranje opmaak-accent op die plaats behouden door een oranje kadertje.
  • De zware donkere achtergrondbalk wat tintelender maken door bv. een verloop-achtergrond er in.
  • De tekst "Typ hier je tekst" in het wit zetten.

Voor de focus bij het invullen:
  • Intikbare tekst gewoon in zwart zetten.
  • Oranje kadertje kan eventueel een andere kleur worden. (Sommige browsers maken het randje bij focus uit zichzelf al anders, die zetten er nog een border omheen.)
  • Als de focus verloren gaat, de opmaak met ingetikte tekst handhaven.
  • Alleen als alle tekst gewist wordt of als er gereset wordt, de kleurwisseling naar "Typ hier je tekst" laten plaatsvinden.

Hiervoor nodig:


  1. Aanpassing van de controle-functie met de kleuren: eigenTekst-nw6.js
  2. In de html niets veranderd t.o.v. sticker-eigentekst5.html.
    [edit]Toch wel: [/edit] bij het rijtje reset-functies van de Wis-knop nog een functie-aanroep opnieuw(); erbij gezet.
  3. In de css worden de kleuren van het invulvakje gekoppeld aan de id van de stickersBE_1_EigenTekst_Add ipv aan de gelijknamige class, dan zijn die bij wisseling van wel/niet ingevulde tekst makkelijk via het script te bedienen:
    Code:
    /* kan weggelaten worden; hier gereset: */
    .stickersBE_1_EigenTekst_Add:focus { 
    	background-color: transparent;
    	color: transparent;
    	border-color: transparent;
    	} 
    	
    /* toevoegen: */
    #stickersBE_1_EigenTekst_Add {
    	background: transparent url(http://bliksekaters.nl/tests/images/stickers-textarea-bg.png) 50% 50%;
    	color: white;
    	border-color: #F77B00; /* oranje */
    	}
    #stickersBE_1_EigenTekst_Add:focus { /* toevoegen: */
    	background-color: #EFEFEF; /* lichtgrijs */
    	color: black;
    	border-color: #8BC53F; /* kikker-groen */
    	}

Dat leidt tot dit:
  • Resultaat in deze: tests/sticker-eigentekst6.html.
  • Met dus bijbehorende eigenTekst-nw6.js.
  • De aangepaste css zit bij mij in de html-pagina.
  • Integrale versie: in deze versie zijn de veranderingen van sticker-eigentekst4.html en sticker-eigentekst5.html ook opgenomen.

=======

5. En de volgende :d

Wisknop...
Opeens zag ik dat bij een reset met de Wis-knop ook het formaat en het aantal wordt gereset. Zou minstens toegevoegd moeten worden aan de waarschuwings-popup!

De reset van formaat en aantal valt visueel namelijk nauwelijks op: je blik wordt gevangen door de verdwijnende grote teksten en de verdwijnende kleuren. De "kleine lettertjes"-veranderingen heb je niet in de gaten.
Als het een formulier was waarin op die plek dan ook lege vakjes kwamen, zou je het veel eerder opmerken (maar hier worden formaat en aantal niet leeg maar met andere inhoud gevuld).


  • Bij het woord "Wis" denk ik ook meer aan het wissen van tekst dan aan het wissen van formaat of aantal.

Maar het lijkt me niet de bedoeling dat als mensen andere teksten/kleuren gaan invullen, ze opeens ook formaat en aantal kwijtrijken bij een klik op de winkelwagen (daarna kan je het natuurlijk wel in het winkelwagen-overzicht zien, maar dat is op een volgende pagina en dan moet je cancelen en weer terug).

Suggesties:
Toch het woord "Wis" vervangen? Bv. "Reset" of "Opnieuw" lijkt me duidelijker.

=======

6. En de volgende :d

Popup-styling...
De popup "Weet u het zeker" komt nu tevoorschijn in de vrij nietszeggende standaard confirm-opmaak van de browser die gebruikt wordt (de kale platte vormgeving van de laatste Firefox-versie vind ik ronduit smakeloos).
En ze doen het allemaal anders.

browser-verschillen-popups.png

Firefox - Chrome - Opera
Safari - Internet Explorer 7

Suggestie:
Hier zou je een mooie in kikker-style opgemaakte css-popup van kunnen maken, al dan niet met wat animatie; en gebruikersvriendelijk in de buurt van de Reset-knop ipv plompverloren midden in de pagina.

=======

7. En de volgende :d

Opera-opmaak...
O, in het voorbijgaan zag ik dat de Wis-knop bij Opera niet op de juist plaats staat, maar verdwaald is.

stickers-opera-wisknop.png

=======

8. En de volgenden :d

Ik weet er nog een paar:
  1. Spaties...
    Men kan nu in de ingetikte tekst geen extra spaties opgeven als men woorden wat verder van elkaar af wil laten staan. Leuke examen-opdracht om daar een mooi javascript voor te verzinnen. ;)

  2. Speedy scripts...
    Alle scripts optimaliseren (zoveel mogelijk samenvoegen, evt. dubbelingen er uit halen, enz.) geeft de pagina meer snelheid.

  3. Speedy images...
    Alle images optimaliseren (zoveel mogelijk kleintjes samenvoegen in css-sprites, waar mogelijk semi-transarante png's vervangen door full-color's incl. background, enz.) geeft de pagina meer snelheid.

  4. Speedy css...
    Alle tabellen uit de html verwijderen en de opmaak met css regelen geeft de pagina meer snelheid (en tegelijkertijd ben je van "dansende opmaak" af als de pagina wordt ingeladen). (- Die hadden we al eens gehad)

  5. Kleurselectie kleuren ...
    Bij alle kleurselectie-uitrolvakjes is het zo, dat uitgerekend de kleur die je via de hover wilt hebben, niet zichtbaar is: die verdwijnt bij hover en selectie en wordt vervangen door de selectie-background van de browser (doorgaans blauw) en de selectie-textcolor van de browser (doorgaans witte tekst).

    selectie-color-uitrolvakjes.png

    Dat is niet met css aan te passen, omdat het in de browser-controls zelf zit, waar je niet bij kunt komen. Een redelijk vaak voorkomende vraag op diverse forums, van bedrijven die hun klanten ook kleuren via een uitrolvakje willen laten kiezen. Maar al die vragen lopen dood op hetzelfde: het kan gewoon niet met een uitrolvakje.
    Er is een alternatief: het mechaniek van een uitrolvakje compleet nabouwen met javascript (en hidden input-velden)...
    - Deze is dus voor als je eens erg ruim in je vrije tijd mocht zitten. :P

Genoeg? ;)

Met vriendelijke groet,
CSShunter
_______________
PS:
Raadsel: één sticker kan je momenteel niet bestellen. Welke?
 
Laatst bewerkt:
Vervolg!
Problemen omhoog gooien is niet zo moeilijk, het is de kunst om ze weer op te vangen. ;)

Bv. de onzichtbaarheid van de te selecteren kleur bij de kleurselectie-uitrollers.
Wat dacht je van real-time laten zien van alle gekozen voorgrond-/achtergrond-kleuren als je hovert over de uitroller, meteen in de bovenbalken?
  • Helaas doet alleen Firefox dit, maar dat is alvast wat... :confused:
  • De andere browsers (Chrome, Opera, Safari en IE7) staan niet toe dat je onmouse-events in de <option>'s van een <select> stopt; IE 8 en 9 kan ik niet testen.
  • W3C geeft hierover in de standaarden geen uitsluitsel: browsers worden in hoge mate vrijgelaten hoe ze met uitrolvakjes e.a. form-elementen omgaan. Vandaar ook dat forms zo ongeveer de moeilijkste dingen zijn om met css te stylen.

Zie (in Firefox): tests/sticker-eigentekst7.html.
Hiervoor alleen nodig:
Mouseovertjes en mouseout's bij de options van de kleuren.
En een paar regeltjes javascript (staan op de pagina zelf, onderaan).

Gegroet!
CSShunter
 
jajajah ... stof genoeg :D

1-2-3-4-5 : gefixed :thumb:
6 Popup-styling : daar ga ik me nog mee amuseren ;)
7 Opera : mee bezig, maar je moet altijd lang wachten bij "browsershots" :(
8 : moet ik nog bekijken

1 ding toch nog : bij aantal kan je max 3 cijfers (999) ingeven, met de pijtjes kan je erboven !? :eek:





Raadsel: één sticker kan je momenteel niet bestellen. Welke?
een kikker ? :rolleyes:
 
Ad 7
Opera is makkelijk in het gareel te krijgen met erbij:
Code:
#stickersBE_1_EigenTekst_Add {
	width: 353px;
	}

Ad 1-ding-nog
Ja, voor de toetsenbord-tikkers heb je bij de textarea id="stickersBE_1_Quantity_Add" er een beperking van maxlength="3" bij gezet (in de html), in het script voor de pijltjes heb je er geen rem op gezet:
[JS]function addOne(){
document.getElementById('stickersBE_1_Quantity_Add').value++; berekenAlles();
}[/JS]
Daardoor tellen de pijltjes door; de tikkers worden geconfronteerd met plotseling niet verder kunnen: als ik er 1000 wil hebben, stop het intikken na de 1-0-0, en heb ik er maar honderd ingetikt. Misschien denkt iemand dan: "O, dan is 100 zeker het maximum" zonder verder te proberen of 999 in te tikken.
Ze zijn alle twee te ondervangen door op te nemen:
  • Een nieuwe uitleg-I waarin staat dat je er maar max. 999 online kunt bestellen, + "gelieve contact op te nemen voor grotere aantallen" of iets dergelijks. De tikkers gaan daar vanzelf wel naar kijken als het mislukt om meer dan 3 cijfers in te tikken.
  • En voor de pijltjesklikkers en getal-inplakkers er ook een poppuppertje bij in de berekenAlles():
[JS]...
if (aantal<1 ){...}
if (aantal>999 ){ // als te veel is ingevuld bij het aantal
alert("Het maximum is 999 exemplaren; zie de informatieknop");
document.getElementById('stickersBE_1_Quantity_Add').value=999; // aantal resetten op 999
return berekenAlles();
}[/JS]

Met vriendelijke groet,
CSShunter
_______
Oplossing raadsel: ik bedoelde probeer maar eens 5 stickers te bestellen met als tekst "Typ hier je tekst", en dan de kleur te veranderen of van bovenste naar onderste te wisselen of toch een ander aantal op te geven. :P
- Maar hola, vergissing gemaakt: het kan toch. :o (Raadsel 2: hoe?)
 
Opera : ok >>> het moet juist 353 px zijn ?

Ad 1-ding nog : ok


(Raadsel 2: hoe?)
... niets doen, van de textinput afblijven ;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan