Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Anchor text - zła pozycja
martinii007
post
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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
vonski
post
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.
Go to the top of the page
+Quote Post
martinii007
post
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
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.
Go to the top of the page
+Quote Post
martinii007
post
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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
vonski
post
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.  
Go to the top of the page
+Quote Post
martinii007
post
Post #7





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

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


(IMG:style_emoticons/default/yahoo.gif)

Temat do zamknięcia, vonski masz piwo (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.09.2025 - 16:40