• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Url przechodzi na diva, zamiast używać fukcji

Object Storage Arubacloud
–1 głos
216 wizyt
pytanie zadane 11 sierpnia 2016 w HTML i CSS przez vShui Początkujący (400 p.)
Witam,
Stworzyłem stronę internetową, która podzielona jest divami, i fukncję która pozwala się między nimi przenosić, problem polega na tym że wpisując adres URL www.index.com/#DIV1, strona zamiast używać TYLKO funkcji przejścia, używa funkcji oraz przenosi na diva z HTML.
Moje pytanie brzmi czy da się usunąć możliwość przejścia z poziomu linku URL przejścia na diva.

Z góry dziekuje

2 odpowiedzi

+2 głosów
odpowiedź 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)
wybrane 11 sierpnia 2016 przez vShui
 
Najlepsza
Chodzi Ci o to, że scrolluje do danego diva? Czy o co? Możesz pokazać tę stronę?
komentarz 11 sierpnia 2016 przez vShui Początkujący (400 p.)
Używam funkcji

function scrollToPage(pageName, cb) {
    var pos = $('#' + name).offset();
    actualOffsetX = actualOffsetX + pos.left;
    actualOffsetY = actualOffsetY + pos.top
    wrapper.velocity({ left: -actualOffsetX, top: -actualOffsetY }, { easing: [25], complete: cb });
}

setPage = function(pageName) {
    scrollToPage(pageName)
    currentPage = pageName;
    var stateObj = { foo: pageName };
    history.pushState(stateObj, pageName, "#" + pageName);

}

Gdy przechodzę na dany adres np www.index.com/#div1 to zamiast tego żeby mi się użyła funkcja i żeby scroll zadziałał , to przeglądarka sama wchodzi na diva. Na chromie wszystko działa, problem ten występuje tylko na ff.

Edit: Chodzi o to żeby wyłączyć możliwość przejscia na diva z URL przeglądarki.
Bo wtedy wrapper który zaimplementowałem do przechodzenia na inne divy się krzaczy i przewijanie nie działa.
komentarz 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)
Pokaż stronę, będzie łatwiej ogarnąć.
komentarz 11 sierpnia 2016 przez vShui Początkujący (400 p.)
Chętnie bym pokazał, niestety jest to strona na przetarg i nie mogę pokazywać kodu bez akceptacji klienta :l.
Ogólnie chodzi o to że mam napisany skrypt który podczas wczytywania strony, przechodzi na dana pozycje (diva). Problem tkwi w tym że podczas ladowania strony na Firefoxie, strona zamiast używać skrypta z przechodzeniem na diva, przechodzi na niego bezpośrednio. www.index.pl/#kontakt (#kontakt to zarówno nazwa diva, jak i dana pozycja na stronie). Chce po prostu wyłączyć możliwość przechodzenia na pozycje diva z poziomu URL.
komentarz 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)

Mówiąc krótko: nie da się. Możesz ustawić odpowiednie stylowanie dla :target

komentarz 11 sierpnia 2016 przez vShui Początkujący (400 p.)
No dobra trudno, poszperam jeszcze po necie może coś się tam znajdzie.
Anyways, dzieki za help ;)
+1 głos
odpowiedź 11 sierpnia 2016 przez niezalogowany

Oczywiście - proponuję załączyć do projektu jQuery (jeżeli go nie dodałeś) oraz mały skrypcik:

$(document).ready(function()  //When the page is ready, load function
{
    $("#something").click(function()  // When something is clicked
    {
        $("#target").scroll();                       // Scroll to the target
    });
});

Załączam dwa linki jak byś chciał poczytać o temacie:

1. scroll event

2. scrollTop event

żadne linkowanie do div'ów nie jest potrzebne ;)

komentarz 11 sierpnia 2016 przez vShui Początkujący (400 p.)
Dzięki, mam :P Chyba źle napisałem w czym tkwi problem
komentarz 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)
edycja 11 sierpnia 2016 przez Comandeer

żadne linkowanie do div'ów nie jest potrzebne ;)

Oczywiście, że jest! Jeśli odsyłamy usera do innego miejsca na stronie, robimy to przy pomocy linka → http://codepen.io/Comandeer/pen/bEPbqg

komentarz 11 sierpnia 2016 przez niezalogowany
1. Codepen not found

2. Zrobienie przejścia przez JS jest łatwe w obsłudze, zrozumieniu i późniejszej edycji (dodawanie wszelakich efektów), więc nie upierał bym się przy pure HTML skoro do tego typu event'ów mamy JS'a
komentarz 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)

Codepen not found

To tępe forum dokleja spacje do końca linków :| Poprawione.

Zrobienie przejścia przez JS jest łatwe w obsłudze, zrozumieniu i późniejszej edycji (dodawanie wszelakich efektów), więc nie upierał bym się przy pure HTML skoro do tego typu event'ów mamy JS'a

W nowszych przeglądarkach starczy dorzucić do CSS scroll-behavior: smooth i mamy płynne przejście bez JS. Co więcej: nie mówię pure HTML, ale podstawa (czyli link) powinno istnieć i na podstawie tego można dobudowywać interakcję w JS. 

komentarz 11 sierpnia 2016 przez niezalogowany
Doszliśmy do zrozumienia - oczywiście zgadzam się że podstawy do których przypinamy eventy powinny istnieć w HTML by nie obciążać komputerów użytkowników oraz nie tworzyć chaosu.Dlatego zaproponowałem powyższy skrypt. Howgh.
komentarz 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)

No ale właśnie Twój nie działałby dobrze z linkiem… ;) Bo np nie korzysta z jego atrybutu [href].

komentarz 11 sierpnia 2016 przez niezalogowany

1. Moja propozycja

zamiast linku wrzucić div/button/anything i w css dorzucić "cursor: pointer;" + mój JS

2. Jeżeli link jest ważny

$(document).ready(function()
{
    $('.socials .fa').click(function(event)
    {
        event.preventDefault();
        window.open(this.href);
    });
});
komentarz 11 sierpnia 2016 przez Comandeer Guru (602,340 p.)

zamiast linku wrzucić div/button/anything i w css dorzucić "cursor: pointer;" + mój JS

Odsyłanie do innego miejsca na stronie/innej strony = link. Tutaj chodzi o semantykę kodu, z której skorzystają choćby czytniki ekranowe.

Co więcej: istnieją tylko dwa elementy klikalne w HMTL: link albo przycisk (polecam porównać zachowanie ostylowanego span z button!). 

komentarz 12 sierpnia 2016 przez vShui Początkujący (400 p.)
Dobra Chłopaki już sobie poradziłem, z pomocą przyszedł mi regex, ustawiłem funkcje znajdowania danego słowa w url, które potem zmieniałem, po czym gdy strona się wczytała(za sprawą loadera) słowo z powrotem się zmieniało.

Dziękuje wszystkim za pomoc i poświęcony czas, mam nadzieję że będziemy widzieć się w komentarzach coraz częściej.
Pozdrawiam V.
komentarz 12 sierpnia 2016 przez Comandeer Guru (602,340 p.)
To brzmi jak cholernie przeinżynierowane rozwiązanie, które dodatkowo zabija domyślną funkcjonalność przeglądarki…

Na pewno dałoby się znaleźć coś sensowniejszego, gdybyśmy mieli dostęp do wersji pokazującej problem na żywo.

Podobne pytania

0 głosów
3 odpowiedzi 639 wizyt
pytanie zadane 1 lipca 2015 w HTML i CSS przez Mieszko I Stary wyjadacz (10,980 p.)
0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 3 czerwca 2019 w JavaScript przez enseenti Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 72 wizyt

92,624 zapytań

141,482 odpowiedzi

319,824 komentarzy

62,006 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...