Hirdetés
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Apple iPhone 16 - ígéretek földje
- Mobil flották
- Yettel topik
- A középkategória egyik legjobb vétele - Dreame L40 Ultra AE
- iPhone topik
- Milyen okostelefont vegyek?
- A piac legerősebb kameráját ígéri a Xiaomi 17 Ultra
- Megérkezett a Google Pixel 7 és 7 Pro
- Xiaomi 14T - nem baj, hogy nem Pro
-
Mobilarena
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Taci
addikt
Sziasztok!
(Bocsánat, csak ilyen hosszan leírva tudom elmagyarázni, mi is a probléma.)
A template-ben amit használok (Bootstrap-alapon), van egy JS, ami a scroll-ozásért felel:
smooth-scrollbar.jsEzeket az infókat látom róla benne kommentelt sorokban, hátha segít beazonosítani, hátha valami általánosabb JS:
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
* cast `I.Scrollbar` to `Scrollbar` to avoid error
*
* `I.Scrollbar` is not assignable to `Scrollbar`:
* "privateProp" is missing in `I.Scrollbar`
*
* @see https://github.com/Microsoft/TypeScript/issues/2672Ahogy látom, ez a szkript a sidebar-ban van használva. Úgy találtam rá, hogy van a sidebar-ban pár elem, ami
data-toggle="collapse"segítségével "bont ki" és "zár össze" tartalmakat (hogy több/kevesebb tartalmat mutasson), és most jött elő a következő hiba:Ha a sidebar alján lévő gombbal (
data-toggle="collapse") bontom ki a tartalmat, és legörgetek a kibővített lista aljára, és az ott lévő gombbal bezárom ezt a listát (szinténdata-toggle="collapse"), akkor nem scroll-oz vissza, és ha mondjuk egy oldalnyi plusz tartalmat mutatott pluszban, és most azt zárom be, akkor a sidebar kvázi üres lesz, mert a tartalmat már elrejtette, viszont az összezárt tartalom feljebb van, és már csak az üres területet mutatja. Aztán amint egy picit is scroll-ozok, ugrik egy hathalmasat, pontosan onnan folytatva, ahol a kibontás előtt állt.Ezen a ponton kezdtem el keresgetni, mi-hol is történik, és ekkor találtam rá, hogy a
smooth-scrollbar.jsvégzi ezt a scroll-ozós számításokat.Azt találtam, hogy létrehoz egy
scroll-contentnevű class-t/osztályt, aminek folyamatos számítások alapján állítja be a transform stílust, konkrétan ezzel mozgatva a tartalmat, srollozás gyanánt.Ha a tetejére scroll-ozok, akkor:
<div class="scroll-content" style="transform: translate3d(0px, 0px, 0px);">Ha a jelenlegi ablakméret aljára, akkor:
<div class="scroll-content" style="transform: translate3d(0px, -291px, 0px);">
Ha kibontom a tartalmat, és az aljára scroll-ozok, akkor:<div class="scroll-content" style="transform: translate3d(0px, -988px, 0px);">
Tehát kb. 700 pixellel lejjebb visz/vagyok.Aztán itt jön a probléma, mert amikor összezárom a tartalma a
data-toggle="collapse"segítségével, akkor konkrétan lent hagy az alján,-988px-en marad a transform, míg a tartalom már azt a kb. 700 pixelt visszazárta, így ott marad kb. 700 pixelnyi üres terület.
Aztán ha egy picit is görgetek felfelé, akkor nem-988px-elről kezdi felfele a görgetést, hanem az azelőtti értékről, a-291px-ről.Szóval az a változó amit figyel, hogy meddig tart a tartalom alja, az már visszaállt a helyes értékre, a
-291px-re, viszont atransform: translate3d()-vel nem "megy utána".
Ezért arra gondoltam, hogy oké, akkor "utána küldöm" én:document.getElementsByClassName("scroll-content")[0].style.transform = "translate3d(0px, 0px, 0px)";És itt jött az a gond, hogy alapból nem akartam ezzel sokat vesződni, mert akkor mindig azt kéne néznem, hogy honnan indult a kibontás, mennyi pixelről, és oda küldeni vissza. Ehelyett inkább egyből a tetejére dobtam vissza (0px, 0px, 0px).
Viszont itt láttam, hogy hiába a transform, attól még a
-291pxvan bejegyezve, hogy ott állt meg legutóbb a scroll-ozás, így hiába dobom a tetejére, ha kicsit görgetek, újra-291px-elről folytatja.Van valakinek tapasztalata ezzel esetleg? Meg lehet ezt oldani valami egyszerű módon?
Remélem, ez valami általánosabb JS (bár én sosem láttam még), és esetleg más is találkozott már ilyen "jelenséggel", így nem túl specifikus a kérdésem.Köszi!
Új hozzászólás Aktív témák
- Békéscsaba és környéke adok-veszek-beszélgetek
- Autós topik
- Google Chromecast topic
- TCL LCD és LED TV-k
- Milyen NAS-t vegyek?
- laca223: Miért győz a kollektív meggyőződés akkor is, ha saját magát teszi tönkre?
- Suzuki topik
- One otthoni szolgáltatások (TV, internet, telefon)
- RAM topik
- Battlefield 6
- További aktív témák...
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es B860 lap! GAR/SZÁMLA (a Te nevedre)
- AOC G24G1 140Hz 24" Ívelt hibátlan állapot
- Dell Latitude E6410 i5 M560, Nvidia NVS 3100M 512MB GDDR3, 4Gb RAM, 250GB HDD, jó akku, számla gar
- Gamer PC minőségi alkatrészekből! I7-9700KF/2TB HDD/800GB SSD/32GB RAM 3600Mhz Rog alaplap
- Dell Latitude 5320 - 13,3" touch, i5-1145G7, 16GB RAM, SSD, EU bill., jó akku, számla, garancia
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- HIBÁTLAN iPhone 13 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4245, 100% Akksi
- Csere-Beszámítás! Acer Nitro 5 AN515-57! I7 11800H / RTX 3050Ti / 16GB DDR4 / 512GB Nvme SSD!
- Dell Latitude 3310 13,3", Gold 5405U, 8GB RAM, SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


