Position fixed werkt niet meer na translateX

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • joldemans
  • Registratie: April 2004
  • Laatst online: 27-09 16:04
Hallo,

Ik ben met een webproject bezig waarbij de mobiele versie een slide-in navigatie krijgt. Met een klein regeltje js krijgen de sidebar en de site wrapper een active class en in CSS geef ik de sidebar een tranlateX(0) en sitewrapper een translateX(300). Werkt allemaal prima.

Nu waar het fout gaat. In de sitewrapper zit een bar met daarin wat knoppen, oa om het menu sidebar menu open/dicht te klappen. Deze moet sticky worden zodra ie de top van m'n scherm bereikt. Dit werkt perfect totdat het sidebar open geklapt staat en je gaat scrollen. De posistion: fixed; werkt dan gewoon ineens niet meer.

Na wat research blijkt dat bv ook tweakers hier last van heeft. Zodra je de site op mobile view zet en een van de sidebars open klapt en dan gaat scrollen dan werkt de fixed header niet meer tijdens het scrollen.

Nu heb ik hetzelfde scenario met een margin-left gedaan en dat lijkt wel gewoon te werken.

Met translateX
http://fiddle.jshell.net/xa8Lhqut/1/

Met margin-left
http://fiddle.jshell.net/kw8kLd0s/

Acties:
  • 0 Henk 'm!

  • itsleon
  • Registratie: December 2010
  • Laatst online: 14-10 14:15
Welke browser gaat het om? Hier op mijn chrome (desktop) werkt je demo namelijk wel gewoon.

Acties:
  • 0 Henk 'm!

  • joldemans
  • Registratie: April 2004
  • Laatst online: 27-09 16:04
M'n fiddle fork is niet helemaal goed gegaan... heb de eerste even geupdate.

Ik gebruik standaard Chrome, maar safari en FF doen tzelfde

[ Voor 29% gewijzigd door joldemans op 09-04-2015 10:29 ]


Acties:
  • 0 Henk 'm!

  • itsleon
  • Registratie: December 2010
  • Laatst online: 14-10 14:15
Wat heb je nu precies aangepast aangezien die nu inderdaad niet meer werkt

Acties:
  • 0 Henk 'm!

  • joldemans
  • Registratie: April 2004
  • Laatst online: 27-09 16:04
Bij
.sidebar.active {
}
.content.active {
}

heb ik de margin-left gecommend, en de translate ge-uncommend

Maar zie waar het fout gaat. Als ik het fixed menu uit de content div haal en deze een aparte active class meegeeft met een translateX erin werkt t wel

http://fiddle.jshell.net/m1kgq9t6/

Nu komt dit wel matig uit want bij de desktop weergave veranderd die box naar wat anders wat binnen de sitewrapper moet zitten.

Denk dat ik maar ff wat moet gaan omgooien.

Acties:
  • 0 Henk 'm!

  • eXtreaL
  • Registratie: Juli 2009
  • Laatst online: 14-10 17:28
Wellicht heb je hier iets aan:
http://meyerweb.com/eric/...ents-with-css-transforms/

Het lijkt erop dat wanneer je een transform toepast op een element de onderliggende elementen afhankelijk worden van de parent in plaats van de viewport. Dit verklaart dan ook het gedrag dat een fixed element blijft plakken: hij blijft aan de bovenkant van de container met transform, in jouw geval .content.

Het lijkt erop (zoals je al aangeeft) dat je het beste je fixed elementen uit de container met de transform kunt halen. Hier nog een voorbeeld dat ik ben tegengekomen: http://jsfiddle.net/vishl/wzPSF/

Succes!

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Een alternatief kan zijn om van transforms en translations af te blijven en margins te gebruiken. Hoewel dat enigszins hacky is reset je daarmee niet je positioning.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • itsleon
  • Registratie: December 2010
  • Laatst online: 14-10 14:15
NMe schreef op donderdag 09 april 2015 @ 10:53:
Een alternatief kan zijn om van transforms en translations af te blijven en margins te gebruiken. Hoewel dat enigszins hacky is reset je daarmee niet je positioning.
Ik ben zelf meer voorstander van left te gebruiken inplaats van margin-left gezien left ongeveer dezelfde functionaliteit heeft als translate. Daarbij duwt margin zich zelf opzij wat weer andere bugs in een later stadium kan opleveren

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

itsleon schreef op donderdag 09 april 2015 @ 11:26:
[...]

Ik ben zelf meer voorstander van left te gebruiken inplaats van margin-left gezien left ongeveer dezelfde functionaliteit heeft als translate. Daarbij duwt margin zich zelf opzij wat weer andere bugs in een later stadium kan opleveren
Left in plaats van margin-left gebruiken reset je positioning. Als ik de TS goed begrijp wil hij dat juist niet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • itsleon
  • Registratie: December 2010
  • Laatst online: 14-10 14:15
NMe schreef op donderdag 09 april 2015 @ 11:32:
[...]

Left in plaats van margin-left gebruiken reset je positioning. Als ik de TS goed begrijp wil hij dat juist niet.
Nu kan het zijn dat ik daar overheen heb gelezen maar denk dat de TS nu meerdere opties heeft om zijn probleem op te lossen.

Acties:
  • 0 Henk 'm!

  • joldemans
  • Registratie: April 2004
  • Laatst online: 27-09 16:04
Persoonlijk vind ik dat je met translate een mooiere transition krijgt en margin-left gaf ook een probleem met de overflow-x: scroll;

Maar ik heb t opgelost door de menubar uit de sitewrapper te halen. Blijkbaar gaat het fout wanneer een fixed element in een translateX element zit.

Thanks voor het meedenken allemaal!
Pagina: 1