Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Anchor text - zła pozycja
martinii007
post 23.01.2014, 10:52:05
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.12.2011

Ostrzeżenie: (0%)
-----


Opiszę mój problem w następujący sposób:

Mam 2 strony HTML: a.html i b.html.
Na stronie a.html jest następujący odnośnik w menu: b.html#miejsce
Teoretycznie powinien pozycjonować do elementu miejsce i tak się dzieje, jednakże w pliku b.html mam slidera, który jednocześnie się ładuje. Po załadowaniu slidera cała strona ucieka do góry w inne miejsce. Czy jest jakiś sposób żeby również "anchorowi" dać opóźnienie lub macie jakieś inne rozwiązać aby rozwiązać ten problem? Jeżeli moje tłumaczenie jest zawiłe to wyeksportuje stronę na ftpa wink.gif
Go to the top of the page
+Quote Post
vonski
post 23.01.2014, 11:19:00
Post #2





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Generalnie strona nie powinna nigdzie uciekać po załadowaniu sider-a, lub czegokolwiek innego, więc coś musi to wymuszać. Także zająłbym się bardziej naprawą tego, niż opóźnieniem skoku do anchor-a - co oczywiście też da sie zrobić za pomocą JS, ale z punktu widzenia UX będzie to dość nietrafione rozwiązanie.


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
martinii007
post 23.01.2014, 14:08:00
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.12.2011

Ostrzeżenie: (0%)
-----


Kolejność jest taka, że najpierw link przechodzi do anchora, a później włącza się zamierzona animacja, która ładuje slider, trwa to oczywiście wszystko ms. Przechodząc do sedna czy jest możliwość, abyanchor się ładował np. dopiero po 1s?

Ten post edytował martinii007 23.01.2014, 14:08:49
Go to the top of the page
+Quote Post
vonski
post 23.01.2014, 14:24:40
Post #4





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jest taka możliwość.
Możesz przerobić troche link na stronie a.html żeby prowadził do: b.html/#/id-elementu

Dzięki temu po załadowaniu strony b.html nie przeskoczy Ci od razu do #id-elementu. Javascriptem odczytujesz wartość hashtaga (window.location.hash) i po zakończeniu animacji slidera, czy po jakimś określonym czasie scrollujesz do tego elementu.


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
martinii007
post 23.01.2014, 14:42:32
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.12.2011

Ostrzeżenie: (0%)
-----


Mógłbyś Twoją myśl przedstawić w postaci przykładowego kodu? Czyli takiego, który czeka np. 1s, a później przechodzi do anchora?
Z góry dzięki smile.gif
Go to the top of the page
+Quote Post
vonski
post 23.01.2014, 15:46:19
Post #6





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Coś w ten deseń:

  1.  
  2. // pobierasz ID elementu z URL-a (przy zalozeniu ze URL jest w postaci: b.html/#/id-elementu
  3. var hash = window.location.hash.replace(/#\//, '');;
  4.  
  5. // tutaj definiujesz co sie ma wykonac po sekundzie
  6. setTimeout(function() {
  7. var el = document.getElementById(hash);
  8. el.scrollIntoView(true); // scroll do elementu
  9. }, 1000); // 1000ms = 1s
  10.  


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
martinii007
post 24.01.2014, 14:40:32
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.12.2011

Ostrzeżenie: (0%)
-----


yahoo.gif

Temat do zamknięcia, vonski masz piwo smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 06:47