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
), ś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
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