Webboard

Pełna wersja: Wysuwane menu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Adres forum:
www.citiesskylines.pl

Wersja silnika:
1.8.15

Opis problemu:
Zawsze to był któryś problem w wątku więc zawsze jakoś tak umykał ale chciałbym to w końcu naprawić :p
Chodzi o wysuwane menu, im niżej strony się zjedzie tym niżej ono się wyświetla aż w pewnym momencie będzie się wyświetlać poniżej strony - nie będzie go widać. Działa w zasadzie jedynie kiedy stronę mamy na samej górze.

L:test123
H:test123
W szablonie headerinclude widzę u ciebie coś takiego:
Kod:
<script type="text/javascript" src="https://citiesskylines.pl/jscripts/jquery.plugins.min.js?ver=1813"></script>

Z tego co się orientuje to jest to jakiś plugin jquery, z tym że ciężko odczytać do czego służy (szczególnie w zminifikowanej wersji xD ), świeżo po instalacji stylu Flatty 2.0 w headerinclude jest coś takiego:
Kod:
<script type="text/javascript" src="https://citiesskylines.pl/jscripts/jquery.plugins_e.js?ver=1806"></script>

I z tym plikiem wszystko wydaje się działać, więc możesz spróbować zamienić u siebie. A jak będą jakieś problemy to zawsze można samemu napisać funkcję obsługującą takie menu. No chyba że ktoś ma jeszcze inne rozwiązanie :P
Rzeczywiście, po zmianie działa. Dzięki :)
Wróć, po dodaniu twojego kodu psują się cockie i nie ważne czy zostawię wersję 1806 czy zmienię na 1816/1815 itp
Zobaczyłem to dopiero teraz bo problem pojawił się podczas próby cytowania posta. Logowanie, zmiana stylu itp działają normalnie. W konsoli standardowy błąd dotyczący cockie
Kod:
Uncaught ReferenceError: Cookies is not defined
    at Object.get (general.js?ver=1815:529)
    at HTMLDivElement.<anonymous> (dvz_shoutbox.js:510)
    at Function.each (jquery.js?ver=1813:2)
    at n.fn.init.each (jquery.js?ver=1813:2)
    at Object.parseEntries (dvz_shoutbox.js:503)
    at index.php:708
Zajrzałem dokładniej w kod i okazało się że pozycja menu jest zależna od przesunięcia "hamburgera" względem całego dokumentu, przy czym pozycja samego menu jest absolutna względem rodzica, a w tym wypadku jest to div.wrapper. Działa to więc tak - im bardziej przesuwasz stronę w dół, tym bardziej zwiększa się przesunięcie menu względem div.wrapper który również się przesuwa. Oryginalnie styl posiada statyczny nagłówek więc nie ma problemu, w tym wypadku trzeba wprowadzić pewne modyfikacje. Najprościej byłoby usunąć przypisanie właściwości top
Poniżej oryginalny fragment kodu odpowiedzialny za działanie menu:

Kod:
function(t) {
   var e = function(e, i) {
       var e = t(e)
         , o = this
         , n = t("#" + e.attr("id") + "_popup");
       if (void 0 === i)
           var i = !0;
       this.open = function(s) {
           if (s.preventDefault(),
           n.is(":visible"))
               o.close();
           else {
               var a = e.offset();
               if (a.top += e.outerHeight(),
               e.offset().left + n.outerWidth() > t(window).width())
                   r = n.outerWidth() - e.outerWidth();
               else
                   var r = 0;
               n.css({
                   position: "absolute",
                   top: a.top,
                   left: a.left - r
               }),
               n.show(),
               t("body, .popup_item").bind("click.close_popup", function(n) {
                   i ? 0 == t(n.target).closest("#" + e.attr("id")).length && o.close() : 0 == t(n.target).closest("#" + e.attr("id")).length && 0 == t(n.target).closest("#" + e.attr("id") + "_popup").length && o.close()
               })
           }
       }
       ,
       this.close = function(t) {
           n.hide()
       }
   };
   t.fn.popupMenu = function(i) {
       return this.each(function() {
           var o = new e(this,i);
           t(this).click(o.open)
       })
   }
Po usunięciu top: a.top, problem powinien zniknąć.
Dzięki, działa jak należy :)