Avatar billede klovnefisken Nybegynder
30. juli 2012 - 14:34 Der er 15 kommentarer

et lille problem med 2 div der skal være lige høje

function ekstra_balance(nr)// balancere teksten i 2 felter
{
    var txt="lsahrbgaliesgflsdi irueghsoiu gasæiudghiaeru erugho rughaæoie urghæwiaoesu soeuirgho iewarughieg erughilwsaeru ghqerugh weuoirghwerug qeouirghæqioeurg ioewqur ghqæeiourwh woieu rghqio erugæwi eurg en meget lang tekst";
    document.getElementById('ektxt_1').innerHTML=txt;
    document.getElementById('ektxt_2').innerHTML="";
    var ant=txt.length-2;
    var nr=ant;
    var vh=100;
    var hh=10;
    do
    {   
            nr--;
            vh = document.getElementById('ektxt_1').offsetHeight;
            hh = document.getElementById('ektxt_2').offsetHeight;
            kik=txt.substring(nr,1);
            if(kik==" ")
            {
                document.getElementById('ektxt_1').innerHTML=txt.substring(0,nr);
                document.getElementById('ektxt_2').innerHTML=txt.substring(nr);
            }
    }
    while(vh>hh)
}

Hej
Det jeg forsøger her at få JS til at fordele den lange tekst i 2 div, så de bliver lige høje
begge div er med fast brede og auto højde og den må ikke dele ord, kun i ord mellemrum
men jeg får fejl som om den går i stå, for der kommer en advarsel i firefox med den er stoppet

håber der er en der har en løsning
M.V.H. Bruno
Avatar billede olebole Juniormester
30. juli 2012 - 15:39 #1
<ole>

Det er meget sjovt at lege med - og de fleste af os har været der på et eller andet tidspunkt - men det er ikke en hensigtsmæssig tilgang.

Et godt råd ville være at designe til den teknologi, der skal bruges. Når CSS3 engang bliver en realitet - og bred browserunderstøttelse kommer i stand - vil der være features, du kan bruge. Men det er langtfra tilfældet i dag.

Derudover så jeg på et tidspunkt et jQuery plugin, der gjorde, hvad du ønsker, men det ændrer ikke ved, at man ikke bør scripte sig til et fungerende design  =)

/mvh
</bole>
Avatar billede mireigi Novice
30. juli 2012 - 23:09 #2
Enig med ole her. Design skal, såfremt det er muligt, holdes i ren HTML + CSS.

Der er få tilfælde, hvor JS kan være med til at påvirke designet, men det er typisk ved dynamisk indhold, fx mouseovers, hvor der skal tages højde for forskelle mellem browsere. Der er :hover ikke altid fyldestgørende.

Eftersom du gerne vil opdele dit tekst i to dele, har du allerede designet på plads. Er teksten statisk, bør det ikke være noget problem, at opdele den. Er den derimod dynamisk, bør det ske på serveren (ASP, PHP, .NET).
Avatar billede klovnefisken Nybegynder
31. juli 2012 - 08:11 #3
Det kan vi sagtens blive enige om at det bør ske på serveren, og det vil også være således , når det ikke er i admin modulet,
jeg var ude efter noget til min admin modul, således jeg kunne smide en lang tekst ind (copy paste) og få den delt op i 2 lige store stykker, og så senere måske dele den over flere sider , hvis det blev for høje sider
når den så først er delt op bliver den så lagt i databasen som hver div i sin egen felt

det var nu mest for ren dovenskab, når jeg har meget lange tekster,
og nemt ville klippe dem til
men uha , er der en anden go måde at løse problemet på ,med PHP, så har jeg åbne øjne til at læse den , jeg kan bare ikke se hvordan den kan løses i php
Avatar billede mireigi Novice
31. juli 2012 - 09:14 #4
Admin delen kan du lave med et javascript der sørger for at dele teksten op i to textarea felter, enten automatisk, eller ved klik på en knap.

Hver del gemmes så i et separat felt i databasen. og udlæses på front-end i hver sin div/kolonne.
Avatar billede klovnefisken Nybegynder
31. juli 2012 - 10:25 #5
lige netop
min tanke var en en textarear hvor alt tekst indtastes
php deler den så i 2 ved et ord mellemrum efter klik på submit

men så er det ikke sikkert det er del ok, for er der mange 'm' i den ene side og mange 'i' i den anden side er de ikke lige høje, så i det tilfælde skulle javasvripten så justere det inden det gemmes i databasen

det ser jo ikke godt ud grafisk hvis højre spalte er højre end venstre spalte

jeg prøver lige at arbejde videre med min javascript, og vender så tilbage
Avatar billede mireigi Novice
31. juli 2012 - 12:05 #6
Det er en dårlig ide ikke at lade admin se opdelingen inden det gemmes.

Pseudo-script:

Hvis længde større end max for spalte 1:
  Opdel ved første mellemrum efter index for max
    Flyt alt efter mellemrum til spalte 2
    Flyt fokus til spalte 2


Det skal du så gøre på onkeyup på spalte 1, og er forholdsvist simpelt at lave.

I PHP skal hver spalte så gemmes i sit eget felt i databasen.
Avatar billede klovnefisken Nybegynder
31. juli 2012 - 13:11 #7
den måde har næsten lavet noget andet i admin delen

det var her fordi jeg ville kun have input felt (textarear)

der er 3 muligheder i visning man kan vælge imellem

1. 2 spaler tekst
2. 2 spalter hvor der er et billede i toppen af spalte 1
3. det samme bare billedet er spalte 2

det giver jo ikke samme antal ord i spalterne om der ikke er billed eller der i en af siderne

billederne bliver klippet til fast brede, man kan have forskellige højde alt efter om det er et vandret/lodret billede der uploadet, skaleret med gd2lib til den brede der passer til feltet

en admin skulle gerne kunne ved klik på knap flytte billedet fra højre til venstre eller omvendt eller slette , indsætte hvis der ikke er et billede

så skulle resten gerne tilpasse sig selv, uden at skulle skrive for meget om /flytte tekst fra den ene spalte til den anden

det skal give 2 spalter der er lige høje

og ja der er en knap til godkend/gem i DB

jeg håber det jeg fik skrevet giver mening
Avatar billede olebole Juniormester
31. juli 2012 - 13:52 #8
Det er en rigtig skidt idé at dele teksten op og lægge den i flere felter, baseret på spalteopdeling. Det låser designet fast, hvilket generelt er noget, man for alt i verden undgår.

Dit udgangspunkt med at dele teksten op i kolonner er i udgangspunktet problematisk, da det ikke er noget, teknologien understøtter - og altså må løses med et 'hack'.

Hvis du tilmed låser dig fast i dette (uhensigtsmæssigt hackede) design, skyder du virkelig dig selv i foden med svær kaliber  *o)
Avatar billede klovnefisken Nybegynder
31. juli 2012 - 22:04 #9
Ole
der er jeg ikke enig med dig, der kan være visse tilfælde hvor man skal afgrænse sine (admin) muligheder. så det er faste låste design man kan vælge imellem,
det er lige som at give en wen en webside , fordi han gerne vil have det og sætte en editor på med alle muligheder, så er det helt sikkert at han får lavet noget der ligner noget selv en blind kan se ikke ser godt ud
men har man lavet en del muligheder at vælge imellem, ja så er han styret og får lavet noget der kommer til at se ordentlig ud, så derfor denne tanke
nu er det ikke lige til en af mine venner jeg arbejder, menb noget til en admin , som vil have noget enkelt og får en go slut design, så han skal have noget der er styret således at han ikke kan ødelægge designet, kun udskifte billeder og tekst , samt slette og tilføje sider
alt er lavet i sammenarbejde med ham, men lige det med at kunne dele en tekst op i 2 spalter så de bliver lige høje , den kunne jeg ikke selv klare
og har heller ikke løst den til nu

er der en der kan og vil hjælpe mig med skrive et eksempel til mig?
<head.....
script type="tekst/javascript>
.....
......
....
</head>
hvis man laver en <body onload='deltekst()'>
<div id='tekst1' style=width:300px;height:auto'>
echo' skriver en lang mumle tekst her';
</div>
<div id=tekst2 style'width:300px;hight:auto>
</div>
</body>

dette er en meget simpel visning af min kode
men den skulle gerne dele teksten i de 2 divs så de bliver lige høje
jeg har nu søgt / forsøgt mange ting men det er ikke lykkedes mig at skrive javascriptet til det , og den må kun dele teksten i ord mellemrum

mvh Bruno
Avatar billede olebole Juniormester
01. august 2012 - 01:06 #10
#9: Det misforstod du vist  =)

Det handler ikke om, at en indehaver af siden skal sidde og fedte med designet. Det er jeg helt enig i, er en *meget* dårlig idé.

På den anden side, må man forvente, at indehaveren på et tidspunkt ønsker at få et webbureau eller -udvikler/-designer til at lave en ny version af sitet.

Dén person er så tvunget til at rette op på skidt kodestil og rense en masse databaseindhold op for at gøre det alment anvendeligt. Dén person får du ingen julegaver af!  *o)
Avatar billede olebole Juniormester
01. august 2012 - 01:13 #11
Under alle omstændigheder er det noget bøvlet noget at lave. Der er jo ikke bare tale om tekst - men om HTML.

Jeg ved, det kan lade sig gøre, for jeg har selv gjort det, da jeg selv var grøn. Det er dog ikke uden grund, det ikke ses på større sites, lavet af professionelle  *o)
Avatar billede mireigi Novice
01. august 2012 - 01:36 #12
Det her kan gøre, hvad du ønsker.
Olebole har nok en bemærkning eller to til koden, det plejer han :)

<script type="text/javascript">
    var evnt = (function ()
    {
        if (window.addEventListener) return {
            add: function (obj, sType, fn)
            {
                obj.addEventListener(sType, fn, false);
            },
            rem: function (obj, sType, fn)
            {
                obj.removeEventListener(sType, fn, false);
            }
        };
        return {
            add: function (obj, sType, fn)
            {
                obj.attachEvent("on" + sType, fn);
            },
            rem: function (obj, sType, fn)
            {
                obj.detachEvent("on" + sType, fn);
            }
        }
    })();

    function getCSS(elem, prop)
    {
        if(elem.currentStyle)
            return elem.currentStyle[prop];
        else if(window.getComputedStyle)
            return document.defaultView.getComputedStyle(elem, null)
                        .getPropertyValue(prop);
 
        return null;
    }

    function equalizeHeights()
    {
        var left = document.getElementById("Left");
        var height = left.clientHeight;
        document.getElementById("Right")
            .setAttribute("style", "height: " + height + "px");

        evnt.rem(window, "load", equalizeHeights);
    }

    evnt.add(window, "load", equalizeHeights);
</script>
Avatar billede klovnefisken Nybegynder
01. august 2012 - 02:44 #13
Tak mireigi
Det var så tæt på at gøre det som jeg gerne ville, at jeg lavede de små ændringer selv

så smid et svar så du kan få dine point
M.V.H. Bruno
Avatar billede mireigi Novice
01. august 2012 - 08:59 #14
Velbekomme.

Du må gerne skrive din færdige løsning herind, så andre også kan have glæde af den.
Avatar billede olebole Juniormester
01. august 2012 - 16:04 #15
Sorry, så har jeg totalt misforstået spørgsmålet. Jeg troede, det handlede om at dele teksten op i to lige store dele, så kolonnerne blev lige høje  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester