2016-03-04 20 views
10

Così come dice il titolo, sto cercando di far scorrere un lato del mio sito web, e l'altro lato rimane. Ho trovato un esempio che fa esattamente quello che voglio:Come far scorrere il lato destro della pagina e il lato sinistro no?

http://melaniedaveid.com/

Se si scorre verso il basso un po 'su quel sito si vedrà che il lato sinistro con il "circa" si fermerà e il lato destro con il testo scorrerà verso il basso se scorri verso il basso. Qualcuno ha qualche idea su come farlo?

Finora ho solo 2 div che si trovano l'uno accanto all'altro.

<section class="about"> 
<div class="aboutTitle"> 
    about 
</div> 

<div class="aboutText"> 
    <p style="font-size: 50px">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
</div> 
</section> 

.aboutTitle { 
display: table-cell; 
background-color: red; 
float: left; 
width: 50%; 
height: 100%; 
} 

.aboutText { 
display: table-cell; 
background-color: orange; 
float: left; 
width: 50%; 
height: 100%; 
} 

EDIT:

Sagar Kodte sua soluzione ha funzionato bene per me. Una cosa che non ho incluso nel mio post originale, perché non pensavo fosse importante in questo caso, era che ho un'altra sezione sopra la mia sezione "about".

<body> 

<section class="home"> 
Welcome 
</section> 

<section class="about"> 
    <div class="aboutTitle"> 
     about 
    </div> 

    <div class="aboutText"> 
     <p style="font-size: 50px">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
    </div> 
</section> 

</body> 

.home { 
background-color: grey; 
left: 0; 
right: 0; 
top: 0; 
bottom: 0; 
height: 100vh; 

}

Non appena ho rimosso la sezione "casa" ha cominciato a lavorare. Ma naturalmente voglio ancora poter usare quella sezione "casa". Qualcuno ha un'idea di come posso usare entrambe le sezioni e usare ancora la pergamena da una parte?

JSFiddle: Link

+0

mantenere lato sinistro come position: fixed in css –

+0

Questo sembra interessante ho aggiunto violino alla tua domanda. – Sandeep

+0

devi rilevare scrollTop e rendere fissa la posizione del div di sinistra e dopo aver scrollato l'intero div di destra devi cambiare l'attributo di posizione del div di sinistra – RRR

risposta

0

Spero che sia utile a voi. Grazie.

.aboutTitle { 
 
display: table-cell; 
 
background-color: red; 
 
float: left; 
 
width: 50%; 
 
height: 100%; 
 
position:fixed; 
 
} 
 

 
.aboutText { 
 
display: table-cell; 
 
background-color: orange; 
 
float: left; 
 
width: 50%; 
 
height: 100%; 
 
position:absolute; 
 
right:0px; 
 
}
<section class="about"> 
 
<div class="aboutTitle"> 
 
    about 
 
</div> 
 

 
<div class="aboutText"> 
 
    <p style="font-size: 50px">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> 
 
</div> 
 
</section>

+0

Mi dispiace, ma ho usato il tuo codice e non sembra funzionare come funziona lo snippet. Ecco come appare adesso: http://prntscr.com/ab2t6p Qualche idea sul perché il mio non funzioni come il tuo snippet? – maxgeraci

+0

Attendi un po 'di tempo. Sto cercando di fare la stessa cosa del sito web che hai indicato come riferimento. Non ho molta conoscenza di jQuery come qualsiasi persona esperta. Non appena ho finito. Lo posterò. Grazie. –

+0

Ho trovato il problema, ma ora mi sono imbattuto in un altro problema. Modificherò il mio post in modo che tu possa vedere. – maxgeraci

2

Per eseguire l'avanzata effetto wich tiene traccia della posizione della barra di scorrimento, si avrebbe bisogno di jQuery. Se si desidera una versione semplice della pagina divisa senza questo effetto, qui è:

Lasciare il margine del corpo uguale a zero. Quindi, dividere la pagina in 2 div sia width: 50%;height: 100% e, infine, aggiungere overflow-y: scroll al secondo div.

- codepen

- jsfiddle

body { 
 
    width: 100%; 
 
    height: 100vh; 
 
    margin: 0px; 
 
} 
 

 
#a, #b { 
 
    box-sizing: border-box; 
 
    padding: 50px; 
 
    display: inline-block; 
 
    width: 50%; 
 
    height: 100%; 
 
    vertical-align: top; 
 
} 
 

 
#a { 
 
    background: tomato; 
 
} 
 

 
#b { 
 
    text-align: justify; 
 
    background: honeydew; 
 
    overflow-y: auto; 
 
    overflow-x: hidden; 
 
} 
 

 
#aboutimg { 
 
position: absolute; 
 
top: 20px; 
 
left: 0; 
 
right: 0; 
 
margin: auto; 
 
}
<img src="http://i.imgur.com/q0NYMxY.png" alt=about id=aboutimg> 
 
<div id=a><span style="font-size: 1.3em">About:</span></div><div id=b>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam nibh. Nunc varius facilisis eros. Sed erat. In in velit quis arcu ornare laoreet. Curabitur adipiscing luctus massa. Integer ut purus ac augue commodo commodo. Nunc nec mi eu justo tempor consectetuer. Etiam vitae nisl. In dignissim lacus ut ante. Cras elit lectus, bibendum a, adipiscing vitae, commodo et, dui. Ut tincidunt tortor. Donec nonummy, enim in lacinia pulvinar, velit tellus scelerisque augue, ac posuere libero urna eget neque. Cras ipsum. Vestibulum pretium, lectus nec venenatis volutpat, purus lectus ultrices risus, a condimentum risus mi et quam. Pellentesque auctor fringilla neque. Duis eu massa ut lorem iaculis vestibulum. Maecenas facilisis elit sed justo. Quisque volutpat malesuada velit.<br><br> 
 

 
Nunc at velit quis lectus nonummy eleifend. Curabitur eros. Aenean ligula dolor, gravida auctor, auctor et, suscipit in, erat. Sed malesuada, enim ut congue pharetra, massa elit convallis pede, ornare scelerisque libero neque ut neque. In at libero. Curabitur molestie. Sed vel neque. Proin et dolor ac ipsum elementum malesuada. Praesent id orci. Donec hendrerit. In hac habitasse platea dictumst. Aenean sit amet arcu a turpis posuere pretium.<br><br> 
 

 
Nulla mauris odio, vehicula in, condimentum sit amet, tempus id, metus. Donec at nisi sit amet felis blandit posuere. Aliquam erat volutpat. Cras lobortis orci in quam porttitor cursus. Aenean dignissim. Curabitur facilisis sem at nisi laoreet placerat. Duis sed ipsum ac nibh mattis feugiat. Proin sed purus. Vivamus lectus ipsum, rhoncus sed, scelerisque sit amet, ultrices in, dolor. Aliquam vel magna non nunc ornare bibendum. Sed libero. Maecenas at est. Vivamus ornare, felis et luctus dapibus, lacus leo convallis diam, eget dapibus augue arcu eget arcu.<br><br> 
 

 
Fusce auctor, metus eu ultricies vulputate, sapien nibh faucibus ligula, eget sollicitudin augue risus et dolor. Aenean pellentesque, tortor in cursus mattis, ante diam malesuada ligula, ac vestibulum neque turpis ut enim. Cras ornare. Proin ac nisi. Praesent laoreet ante tempor urna. In imperdiet. Nam ut metus et orci fermentum nonummy. Cras vel nunc. Donec feugiat neque eget purus. Quisque rhoncus. Phasellus tempus massa aliquet urna. Integer fringilla quam eget dolor. Curabitur mattis. Aliquam ac lacus. In congue, odio ut tristique adipiscing, diam leo fermentum ipsum, nec sollicitudin dui quam et tortor. Proin id neque ac pede egestas lacinia. Curabitur non odio.<br><br> 
 

 
Nullam porta urna quis mauris. Aliquam erat volutpat. Donec scelerisque quam vitae est. Aenean vitae diam at erat pellentesque condimentum. Duis pulvinar nisl sed orci. Vivamus turpis nisi, volutpat in, placerat et, pharetra nec, eros. Suspendisse tellus metus, sodales non, venenatis a, ultrices auctor, erat. In ut leo nec elit mattis pellentesque. Sed eros elit, cursus accumsan, sollicitudin a, iaculis quis, diam. Pellentesque fermentum, pede a nonummy varius, ligula velit laoreet erat, et lacinia nibh nulla sit amet nunc. Suspendisse at turpis quis augue pellentesque pretium. Nunc condimentum elit semper felis.<br><br> 
 

 
Duis imperdiet diam pharetra nisi. Fusce accumsan. Fusce adipiscing, felis non ornare egestas, risus elit placerat mauris, in mollis ante erat quis nisi. Quisque sed ipsum. Nulla facilisi. Donec arcu erat, sodales quis, cursus eget, posuere eget, tellus. Vestibulum eu risus. Curabitur adipiscing, odio in pretium feugiat, nulla magna vehicula lorem, at placerat tortor nisl eget velit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse mollis fermentum massa. </div>

+0

C'è un modo per far funzionare lo scroll mentre il mouse si trova anche all'interno del div sinistro? Finora puoi solo scorrere il testo mentre il mouse si posiziona sul div destro. – maxgeraci

+0

Controlla la mia nuova risposta pubblicata proprio adesso; –

0

Interessante da individuare questo dopo aver fatto la stessa cosa la settimana scorsa.

Uso le scatole flessibili nidificate per ottenere ciò. Ecco una versione molto redatta di ciò che ho usato per una mappa pop-up. Con un po 'di lavoro puoi anche farlo riorganizzare per un cellulare o anche per un tablet, ma te lo lascio.

CSS

#container { 
    display: flex; 
    flex-flow: column nowrap; 
    align-items: stretch; 
    width: 600px; 
    height: 340px; 
} 
#header { 
    flex: 0 0 auto; 
    height: 35px; 
    background-color: orange; 
    border-bottom: 2px solid #CCC; 
} 
#content { 
    display: flex; 
    flex-flow: row norwap; 
    align-items: stretch; 
    min-height: 0; 
} 
#navbar { 
    flex: 0 0 auto; 
    padding: 10px 20px 10px 0px; 
    border: 1px solid blue; 
} 
#main { 
    flex: 1 1 auto; 
    border: 1px solid red; 
    display: flex; flex-flow: 
    column nowrap; 
    align-items: stretch; 
} 
#map { 
    flex: 0 0 auto; 
    width: auto; 
    height: 100px; 
    background-color: blueviolet; 
} 
#desc { 
    flex: 1 1 auto; 
    overflow-y: auto; 
    padding: 10px; 
} 

HTML

<html> 
<head> 
<title>Super Nested Flexbox Example</title> 
</head> 
<body> 
<div id="container"> 
    <div id="header"> 
    </div> 
    <div id="content"> 
     <div id="navbar"> 
      <ul> 
       <li>Douglas Adams</li> 
       <li>Sarah Jane Smith</li> 
       <li>Patrick Thourton</li> 
       <li>Oscar Wilde</li> 
      </ul> 
     </div> 
     <div id="main"> 
      <div id="map"></div> 
      <div id="desc"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam quis sem maximus, lobortis lacus ut, finibus enim. Donec diam dolor, fermentum sit amet elementum vitae, congue ut lectus. Nullam maximus neque nisl, eu tristique mi accumsan elementum. Phasellus quis nulla urna. Phasellus nec mauris maximus, elementum ante id, tristique velit. Praesent luctus placerat aliquam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Maecenas vitae turpis ut metus lobortis aliquet. Cras sollicitudin tempus hendrerit. Quisque rhoncus eleifend ex, at finibus elit ultrices nec. Fusce tincidunt diam eu nisi iaculis vestibulum. Suspendisse potenti. Cras facilisis lobortis nunc quis faucibus. Vestibulum aliquet nulla ac tortor molestie, a cursus mi tincidunt. Proin faucibus dictum est, sit amet convallis elit convallis in. 
      </div> 
     </div> 
    </div> 
</div> 
</body> 
</html> 

Nota l'uso di "min-height: 0;" che è necessario per l'implementazione di Flexbox da parte di FireFox.

Spero che questo aiuti!

1

Questa è la mia seconda risposta a questa domanda. L'obiettivo è di far funzionare lo scroll anche con il mouse sopra la casella di sinistra. A differenza della versione precedente, il div con il contenuto, a destra, non ha alcuna barra di scorrimento. Il suo contenuto scorre con la barra di scorrimento della pagina. Per evitare la pagina di barra di scorrimento del raggiunge anche il primo div, è stato impostato con position:fixed

body { 
 
    width: 100%; 
 
    height: 100vh; 
 
    margin: 0px; 
 
} 
 

 
#a, #b { 
 
    box-sizing: border-box; 
 
    padding-top: 50px; 
 
    padding-bottom: 50px; 
 
    padding-right: 50px; 
 
    display: inline-block; 
 
    vertical-align: top; 
 
} 
 

 
#a { 
 
    padding-left: 50px; 
 
    height: 100%; 
 
    position: fixed; 
 
    background: tomato; 
 
    width: 50%; 
 
} 
 

 
#b { 
 
    padding-left: calc(50% + 50px); 
 
    text-align: justify; 
 
    background: honeydew; 
 
    width: 100%; 
 
} 
 

 
#aboutimg { 
 
position: fixed; 
 
top: 20px; 
 
left: 0; 
 
right: 0; 
 
margin: auto; 
 
z-index: 100; 
 
}
<img src="http://i.imgur.com/q0NYMxY.png" alt=about id=aboutimg> 
 
<div id=a><span style="font-size: 1.3em">About:</span></div><div id=b>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam nibh. Nunc varius facilisis eros. Sed erat. In in velit quis arcu ornare laoreet. Curabitur adipiscing luctus massa. Integer ut purus ac augue commodo commodo. Nunc nec mi eu justo tempor consectetuer. Etiam vitae nisl. In dignissim lacus ut ante. Cras elit lectus, bibendum a, adipiscing vitae, commodo et, dui. Ut tincidunt tortor. Donec nonummy, enim in lacinia pulvinar, velit tellus scelerisque augue, ac posuere libero urna eget neque. Cras ipsum. Vestibulum pretium, lectus nec venenatis volutpat, purus lectus ultrices risus, a condimentum risus mi et quam. Pellentesque auctor fringilla neque. Duis eu massa ut lorem iaculis vestibulum. Maecenas facilisis elit sed justo. Quisque volutpat malesuada velit.<br><br> 
 

 
Nunc at velit quis lectus nonummy eleifend. Curabitur eros. Aenean ligula dolor, gravida auctor, auctor et, suscipit in, erat. Sed malesuada, enim ut congue pharetra, massa elit convallis pede, ornare scelerisque libero neque ut neque. In at libero. Curabitur molestie. Sed vel neque. Proin et dolor ac ipsum elementum malesuada. Praesent id orci. Donec hendrerit. In hac habitasse platea dictumst. Aenean sit amet arcu a turpis posuere pretium.<br><br> 
 

 
Nulla mauris odio, vehicula in, condimentum sit amet, tempus id, metus. Donec at nisi sit amet felis blandit posuere. Aliquam erat volutpat. Cras lobortis orci in quam porttitor cursus. Aenean dignissim. Curabitur facilisis sem at nisi laoreet placerat. Duis sed ipsum ac nibh mattis feugiat. Proin sed purus. Vivamus lectus ipsum, rhoncus sed, scelerisque sit amet, ultrices in, dolor. Aliquam vel magna non nunc ornare bibendum. Sed libero. Maecenas at est. Vivamus ornare, felis et luctus dapibus, lacus leo convallis diam, eget dapibus augue arcu eget arcu.<br><br> 
 

 
Fusce auctor, metus eu ultricies vulputate, sapien nibh faucibus ligula, eget sollicitudin augue risus et dolor. Aenean pellentesque, tortor in cursus mattis, ante diam malesuada ligula, ac vestibulum neque turpis ut enim. Cras ornare. Proin ac nisi. Praesent laoreet ante tempor urna. In imperdiet. Nam ut metus et orci fermentum nonummy. Cras vel nunc. Donec feugiat neque eget purus. Quisque rhoncus. Phasellus tempus massa aliquet urna. Integer fringilla quam eget dolor. Curabitur mattis. Aliquam ac lacus. In congue, odio ut tristique adipiscing, diam leo fermentum ipsum, nec sollicitudin dui quam et tortor. Proin id neque ac pede egestas lacinia. Curabitur non odio.<br><br> 
 

 
Nullam porta urna quis mauris. Aliquam erat volutpat. Donec scelerisque quam vitae est. Aenean vitae diam at erat pellentesque condimentum. Duis pulvinar nisl sed orci. Vivamus turpis nisi, volutpat in, placerat et, pharetra nec, eros. Suspendisse tellus metus, sodales non, venenatis a, ultrices auctor, erat. In ut leo nec elit mattis pellentesque. Sed eros elit, cursus accumsan, sollicitudin a, iaculis quis, diam. Pellentesque fermentum, pede a nonummy varius, ligula velit laoreet erat, et lacinia nibh nulla sit amet nunc. Suspendisse at turpis quis augue pellentesque pretium. Nunc condimentum elit semper felis.<br><br> 
 

 
Duis imperdiet diam pharetra nisi. Fusce accumsan. Fusce adipiscing, felis non ornare egestas, risus elit placerat mauris, in mollis ante erat quis nisi. Quisque sed ipsum. Nulla facilisi. Donec arcu erat, sodales quis, cursus eget, posuere eget, tellus. Vestibulum eu risus. Curabitur adipiscing, odio in pretium feugiat, nulla magna vehicula lorem, at placerat tortor nisl eget velit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse mollis fermentum massa. </div>

+0

Ho ancora lo stesso problema di prima. Voglio aggiungere un altro div al di sopra di quelli #a e #b. Ma non appena aggiungo il div scartano #a a causa della cosa "position: fixed". – maxgeraci

+0

Voglio praticamente la stessa cosa del sito web che ho collegato nel mio post. Inizia con la mano grande con il nome al suo interno, e quando scorri verso il basso ti porta allo schermo diviso dove solo il div destro può scorrere verso il basso. – maxgeraci

+0

Beh, questo è nuovo per me, non l'ho visto spiegare sulla domanda. –

Problemi correlati