Witam po dłuższej przerwie,
Mam problem z dwoma skryptami na stronie.
Pokrótce: strona jest zbudowana na trochę archaicznym schemacie (ale to działa ). Niemniej problem jest.
Chodzi mianowicie o skrypt wczytywania podstron, "ładowanie" strzałki przesuwania "do góry", komunikat że "to podstrona" oraz obsługę slajdera.
Swego czasu dostałem skrypt 90348=wczytywanie-v2-eng
link
Na jego podstawie "udało?" mi się wymodzić 9403=compressed4
link
Niestety coś (na pewno) chyba jest skopane - co prawda strony ładują się ALE z oporami, bo podstrony dostają drgawek po wczytaniu i próbie przesuwania, a trzeba też odczekać nieraz dłuższą chwilę zanim można przesunąć treść. W wersji mobile nie ukazuje się też strzałka przesuwania "do góry".
Wczytywanie ich jako async
albo defer
niezbyt pomaga, albo prawie wcale.
Jako że opanowanie tajników .js
przerasta mój przedział wiekowy, czy można poprosić o rozwiązanie tego problemu.
/*global $*/
window.addEventListener('load', function (e) { // wykonac po zaladowaniu dokumentu;
// rozpoznaje glowna strona po tym, ze istnieje div o id-ku "maincontainer" albo id contentcolumn dla nowego ukladu;
var isHomePage = document.getElementById('maincontent') ? true : false;
// wczytaj dodatkowy CSS;
var loadCss = function () {
if (!document.getElementById('home-link-css')) {
// tworzymy nowy element 'link', ktory dodajemy do head-a;
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = 'home-link-css';
link.rel = 'preload stylesheet';
link.as = 'style';
link.type = 'text/css';
link.href = 'home-link.css';
link.media = 'all';
head.appendChild(link);
}
};
// dodaje link prowadzacy do glownej strony
var addHomeLink = function () {
var homeLink = document.createElement("a"); // element;
homeLink.innerHTML = "It's just a sub-page - go back to the menu page"; // tekst;
homeLink.href = "http://mtkosciuszko.org.au/welcome-eng.php"; // URL do portalu;
homeLink.title = "Back to the menu page";
homeLink.classList.add("home-link"); // dodaj klase;
var parent = document.getElementsByClassName('cala')[0];
var firstChild = parent.firstChild;
if (!firstChild) { return; }
parent.insertBefore(homeLink, firstChild);
}
// aktywacja menu + wczytywanie stron do kontenera;
var initMenu = function () {
if (typeof $ == 'undefined') { return; } // bez jQuery nie kontynuujemy;
var content = $('#maincontent'); // kontener dla tresci strony albo contentcolumn;
var defaultTitle = document.title; // domyslny tytul strony;
$('.openToDiv').on('click', function(event)) { // event typu 'onClick' dla elementow menu;
event.preventDefault(); // ignorujemy domyslne zachowanie
var item = $(this); // obiekt jQuery elementu;
var url = item.attr('href'); // URL z elementu;
var title = item.attr('title') || defaultTitle; // tytul
if (!url) { return false; } // jezeli brak adresu to przerywam operacje;
$.get(url, function(response) { // tutaj request za pomoca get-a;
content
.html(response) // wprowadz tresc do kontenera;
.animate({scrollTop:0}); // kontener przewin do gory
content.find('.home-link').remove();
document.title = title; // ustaw tytul z elementu;
});
});
// o ile klasa nie jest ostylowana to nie jest potrzebna;
// (to tez zapobiega ponownemu nadaniu event-u przez nadmiarowe skrypty)
$('.openToDiv').toggleClass('openToDiv');
};
if (!isHomePage) { addHomeLink(); loadCss(); } // dodajemy link gdy nie jestesmy na glownej stronie;
if (isHomePage) {initMenu(); } // inicjacja menu
initSlider(); // czy to na pewno nalezy zawsze wykonac?
});
/*global $*/
$(document).ready(function () {
$("#maincontent").scroll(function() {
100 < $(this).scrollTop() ? $("#scrollup").fadeIn() : $("#scrollup").fadeOut()
}), $("#scrollup").click(function() {
return $("#maincontent").animate({
scrollTop: 0
}, "fast"), !1
})
}), $(document).ready(function () {
$(".openToDiv").click(function(t) {
t.preventDefault();
var n = $(this).attr("href"),
e = $(this).attr("title");
$("#maincontent").load(n).animate({
scrollTop: 0
}, "800"), document.title = e
})
}), $(document).ready(function () {
$(".openToDiv").click(function(t) {
t.preventDefault();
var n = $(this).attr("href"),
e = $(this).attr("title");
$("#maincontent").load(n), $("html, body").animate({
scrollTop: 0
}, "800"), document.title = e
})
});
Pozdrawiam Z