2016-08-26 1 views
0

Auf der Oberseite habe ich zwei Divisionen, und die zweite soll behoben werden, nachdem der Benutzer gescrollt Pass es aber nur auf Handy.Sticky Div nur für Handys/Handys

einen Blick auf diese Nehmen Sie zum Beispiel: https://jsfiddle.net/livibetter/HV9HM/

Das ist genau das, was ich zu tun versucht, aber ich will das nur auf dem Handy-Geräte passieren. Auf dem Desktop werden sich die Divisionen anders verhalten. Auf dem Desktop sind zwei Bereiche fest und das ist kein Problem und es funktioniert einwandfrei.

Am Handy habe ich behoben von Division 1 und 2 entfernt und wenn der Benutzer Division 2 passiert, möchte ich es behoben und arbeiten wie in dem oben angegebenen Beispiel gezeigt.

Beispielcodes von Fiddle

function sticky_relocate() { 
    var window_top = $(window).scrollTop(); 
    var div_top = $('#sticky-anchor').offset().top; 
    if (window_top > div_top) { 
     $('#sticky').addClass('stick'); 
     $('#sticky-anchor').height($('#sticky').outerHeight()); 
    } else { 
     $('#sticky').removeClass('stick'); 
     $('#sticky-anchor').height(0); 
    } 
} 

#sticky { 
    padding: 0.5ex; 
    width: 600px; 
    background-color: #333; 
    color: #fff; 
    font-size: 2em; 
    border-radius: 0.5ex; 
} 

#sticky.stick { 
    margin-top: 0 !important; 
    position: fixed; 
    top: 0; 
    z-index: 10000; 
    border-radius: 0 0 0.5em 0.5em; 
} 

body { 
    margin: 1em; 
} 

p { 
    margin: 1em auto; 
} 
+0

Wenn Sie nur auf Geräte abzielen möchten, können Sie mit 'device user agent' feststellen, ob das Gerät aktiviert ist oder nicht, und dann Ihre Funktion ausführen. – vivekkupadhyay

+0

Ich habe versucht, eine spezielle CSS für nur Geräte mit weniger als 768px zu setzen, aber es hat nicht richtig funktioniert. Ich habe dann versucht, diese CSS zu aktivieren, nachdem eine bestimmte Höhe gescrollt wurde. – DeathNote

+0

Können Sie posten, was Sie versucht haben? Ist es möglich, dass Sie vergessen haben, den HTML-Code einzugeben? ? –

Antwort

0

Sie können immer die Medienabfrage in der CSS-Seite verwenden diese wie mein Beispiel unten zu erreichen:

@media screen and (max-width: 430px) 
{ 
.cssEntry { 
    background: pink; 
} 
} 

HINWEIS: Sie basteln mit die mobilen Breiten aber generell 430px sind mehr als genug.

+0

Diese CSS bleibt von Anfang an aktiv, wenn die Seite geladen wird, aber ich möchte sie nur aktivieren, wenn der Benutzer über die zweite Abteilung hinaus gescrollt hat. Ich habe versucht, ein CSS zu aktivieren, sobald der Benutzer an einem bestimmten Div gescrollt hat, aber es funktioniert irgendwie nicht. – DeathNote