Hirdetés
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
- Xiaomi 17 Ultra - jó az optikája
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Poco M8 Pro 5G gyorsteszt
- MWC 2026: Adatbiztonságra fókuszáló újdonságok a Motorolától
- Jolla és SailfishOS tapasztalatcsere
- MWC 2026: Na, fussunk vele még egy kört!
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Nothing Phone 2a - semmi nem drága
-
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
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
- Apple asztali gépek
- Az eddigi legolcsóbb, 3D V-Cache-t használó CPU-ját hozta forgalomba az AMD
- AliExpress tapasztalatok
- Kormányok / autós szimulátorok topikja
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Vezeték nélküli fülhallgatók
- gban: Ingyen kellene, de tegnapra
- Víz- gáz- és fűtésszerelés
- Fejhallgató erősítő és DAC topik
- További aktív témák...
- HP Probook 445R G6,14",FHD,AMD Ryzen 5 3500U,8GB DDR4,256GB SSD,WIN11
- Mind a új MAKULÁTLAN Apple MacBook Air 15" M2 16B RAM 256GB Magyar billentyű garancia 2026.11.14
- Lenovo ThinkPad T480s,14",FHD,i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH
- GARANCIÁLIS ASUS TUF F16 // Intel Core 5 210H // 16GB RAM // 1TB SSD // RTX 4050
- 10genes kishibàs pc(i3-10105f/8gb/gt1030/win11/SSD/hdd)
- Új HP 15 Victus FHD IPS 144Hz i5-12500H 12mag 16GB 512GB SSD Nvidia RTX 4050 6GB Win11 Garancia
- BESZÁMÍTÁS! MSI Cyborg 15 A12VF FHD GAMER notebook - i5 12450H 16GB DDR5 512GB SSD RTX 4060 8GB
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Acer Nitro 5 AN515-55 FHD notebook - i7 10750H 16GB DDR4 512GB SSD GTX 1660 Ti 6GB WIN11
- szinteÚJ 2030 Gar! Dell Pro Max 14 Ryzen AI 9 HX PRO 370 32GB LPDDR5X 512GB NVMe SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

