2017-01-05 3 views
0

Ich habe alles versucht, aber ohne Erfolg. Ich versuche das zu tun, wenn jemand den rechten Bildschirm scrollt, er scrollt nur ihn und nicht die ganze Seite. Dies ist mein Code:Versuchen, nur div zu scrollen, und nicht ganze Seite

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<div class="content-container"> 
    <div class="content"> 
    <div>text</div> 
<div>text</div> 
<div>text</div> 
<button id="button"> 
Click me 
</button> 
    </div> 
    </div> 
<div class="new-content"> 
<p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> 
    </div> 

CSS:

.content { 
    position: absolute; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    text-align: center; 
    width: 100%; 
} 
.content-container { 
    height: 100vh; 
    display: block; 
    background: #ddd; 
    float: left; 
    width: 100%; 
    position: relative; 
} 
.new-content { 
    display: none; 
    overflow: auto; 
    float: left; 
    width: 0; 
    height: auto; 
    background: #f60; 
} 
.new-content.half, 
.content-container.half { 
    width: 50%; 
} 

JS:

$('#button').click(function(){ 
    $('.new-content').toggleClass('half').delay(600).fadeIn(100); 
    $('.content-container').toggleClass('half'); 
}); 

** Hinweis, dass ich wusste, wenn ich height zu 100vh auf .new content anstelle von auto mache wird es behoben werden, aber ich weiß nicht genau die Höhe dieses Teils und deshalb brauche ich es, um automatisch zu sein wird mehr als 100vh sein) * Fiddle.https://jsfiddle.net/adf4uu31/1/

+0

Wie kommt es, dass Sie es wollen hat blättern und nach wie vor eine dynamische Höhe? –

Antwort

0

content-container auf position : fixed gesetzt und setzte new-content zu float :right in der CSS-

+0

Ich habe es gerade versucht, es gibt mir keine Möglichkeit, jetzt zu scrollen. Und die Gegenstände, die unter dem 100% -Bildschirm erscheinen, werden nicht angezeigt. –

+0

Vergiss nicht, das Geigenskript (oben links auf der Seite) auszuführen, nachdem du die von mir vorgeschlagenen Einstellungen vorgenommen hast .... Ich habe die Änderungen an deinen originalen Geigenskripten vorgenommen ... Machen Sie die Änderung, dann drücken Sie 'run' nach links, dann versuchen Sie es zu sehen ... Sie werden die orange Scheibe bemerken, obwohl die einzige Bewegung beim Scrollen die graue Scheibe ist ... Aber das ist ein anderes Problem :) –

0

Wenn ich das richtig verstehen Sie es nicht mögen, im rechten Bereich zu bewegen, so wird nicht groß, aber seit Die Liste kann kürzer sein, aber Sie möchten keinen festen Wert angeben. In diesem Fall können Sie

.new-content { 
    max-height: 100vh; 
} 
+0

Nun, ich schrieb in meiner Frage ......... ** Beachten Sie, dass ich wusste, dass, wenn ich Höhe 100vh auf neuen Inhalt statt Auto machen werde, es behoben wird, aber ich weiß nicht genau die Höhe dieses Teils und deshalb brauche ich es, um automatisch zu sein (es wird mehr als 100vh sein). * –

+0

Ich dachte, Sie vielleicht eine feste Höhe gemeint, da Sie das Höhenattribut beziehen, während max-Höhe ist kein feste Höhe, sondern ein fester Wert. Mir ist nicht klar, was du erreichen willst, vielleicht könntest du es noch ein bisschen erklären? Vielleicht hilft Ihnen Flexbox, ist das eine Option für Sie? –

0

Wenn die Höhe des Containers nicht festgelegt ist, erhöht sich die Höhe des div-Elements mit zunehmendem Inhalt, wodurch die Bildlaufleiste vermieden wird. Sie müssen also eine feste Höhe für die Interaktion mit der Bildlaufleiste haben.

$(document).ready(function(){ 
 
$('#button').click(function(){ 
 
    $('.new-content').css({'height' : '100vh' }).toggleClass('half').delay(600).fadeIn(100); 
 
    $('.content-container').toggleClass('half'); 
 
}); 
 
});
.content { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
    text-align: center; 
 
    width: 100%; 
 
} 
 
.content-container { 
 
    height: 100vh; 
 
    display: block; 
 
    background: #ddd; 
 
    float: left; 
 
    width: 100%; 
 
    position: relative; 
 
    overflow : auto; 
 
} 
 
.new-content { 
 
    display: none; 
 
    overflow: auto; 
 
    float: left; 
 
    width: 0; 
 
    height: auto; 
 
    background: #f60; 
 
} 
 
.new-content.half, 
 
.content-container.half { 
 
    width: 50%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="content-container"> 
 
    <div class="content"> 
 
    <div>text</div> 
 
<div>text</div> 
 
<div>text</div> 
 
<button id="button"> 
 
Click me 
 
</button> 
 
    </div> 
 
    </div> 
 
<div class="new-content"> 
 
<p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p><p>text</p> 
 
    </div>

Verwandte Themen