Changeset 27cb1e3 in Klonkt for src


Ignore:
Timestamp:
08/24/2026 07:27:58 AM (2 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
edd5ccc
Parents:
b4af6f3
Message:

Lezen op touch: voorbij de grens is ook gevangen

Robins regel (24-8): wordt het target voorbijgescrolld, dan landen we alsnog
op het target. De beoordeling pakt nu de EERSTE grens voorbij het loslaatpunt
in plaats van de dichtstbijzijnde bij de landing, en de vangzone werkt alleen
nog aan de korte kant: kom je er niet bij in de buurt, dan lees je vrij binnen
een lang bericht; eroverheen -- hoe ver ook -- betekent grijpen.

Gevolg dat benoemd moet zijn: een harde veeg komt altijd precies een bericht
verder, nooit twee. Dat is het bladeren dat de leesweergave wil zijn.

MOD_V naar 57.

Co-Authored-By: Claude Fable 5 <noreply@…>

Location:
src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/assets/js/mod/read.js

    rb4af6f3 r27cb1e3  
    480480        const doel = lenis.targetScroll;   // de echte landing, niet de raakdelta
    481481        const punten = snap.computeSnaps();
    482         let best = -1;
     482        // De EERSTE grens voorbij het loslaatpunt, niet de dichtstbijzijnde bij
     483        // de landing. Robins regel (24-8): wordt het target voorbijgescrolld,
     484        // dan landen we alsnog OP het target. De zone werkt dus alleen aan de
     485        // korte kant -- kom je er niet eens bij in de buurt, dan lees je gewoon
     486        // binnen een lang bericht en blijft alles vrij. Eroverheen, hoe ver
     487        // ook, betekent grijpen. Een harde veeg komt daarmee altijd precies
     488        // een bericht verder, nooit twee: dat is het bladeren.
     489        let eerste = -1;
    483490        punten.forEach((punt, i) => {
    484           if (punt.value <= vertrek + 2) return;
    485           if (Math.abs(doel - punt.value) > vangZone()) return;
    486           if (best < 0 || Math.abs(doel - punt.value) < Math.abs(doel - punten[best].value)) best = i;
     491          if (punt.value > vertrek + 2 && (eerste < 0 || punt.value < punten[eerste].value)) eerste = i;
    487492        });
    488         // Landt de uitloop net VOORBIJ een bovenkant, dan is een klein stukje
    489         // terug naar die lijn precies de gevraagde snap -- geen terugtrekking,
    490         // want punten achter het loslaatpunt zijn hierboven al uitgesloten.
    491         if (best >= 0) echtGaNaar(best);
     493        if (eerste < 0) return;            // niets meer voor je: vrij uitscrollen
     494        if (doel >= punten[eerste].value - vangZone()) echtGaNaar(eerste);
    492495      }, 150);
    493496    });
  • src/views/shell.ejs

    rb4af6f3 r27cb1e3  
    505505  // Eén nummer voor de hele map. Te vaak bumpen kost één download; te weinig
    506506  // bumpen kost een bugfix die nooit aankomt.
    507   var MOD_V = 56;
     507  var MOD_V = 57;
    508508
    509509  // name -> 1 (aan het laden) of de module-namespace (geladen). Een module
Note: See TracChangeset for help on using the changeset viewer.