iScroll Scrollen Vergangenheit Unten?

Sie kann leicht sehen, dass das problem auf der ersten Seite hier: http://m.vancouverislandlife.com/

 

Blättern Sie nach unten (Folie) und lassen Sie den Inhalt auf die Seite verlassen und es nicht wieder auf die Beine und ist für immer verloren. Aber auf Seiten, deren Inhalte hat überlauf der Seite und ist daher angenommen werden kann, das scrollen funktioniert einwandfrei (siehe Unterkünfte > b&b ' s, und Blättern Sie nach unten für ein Beispiel).

Bemerkte ich, dass auf meinem computer, das scrollen auf der ersten Seite ist immer fest an -899px. Ich kann nicht finden, jemand anderes, der dieses problem erlebt und egal was ich versuche, ich kann es nicht reparieren! Hilfe!!!

 

(Es ist nicht wirklich dringend, da die Zielgruppe von iPhones und iPod Touches sind nicht davon betroffen, da Sie so wenig screen-Raum.)

Okay, neues problem. Zum lösen der iScroll Problem, ich gerade erstellt ein benutzerdefiniertes Skript. Jedoch funktioniert es nicht richtig auf die eigentliche Gerät. Auf desktop-Browsern, es funktioniert Prima. Auf mobilen, gelegentlich springt zurück an die Spitze und gewann ' T erkennen, einige berührt. Dies ist wahrscheinlich, weil der Weg, den ich abgebrochen, das Standard-event-und musste greifen, um ein bisschen ein hack. Wie kann ich dieses Problem beheben? (Yup - einfaches problem für ein +500 bounty. Nicht schlecht, nicht wahr?)

Hier ist das Skript, und die website ist an der üblichen Stelle:

function Scroller(content) {
    function range(variable, min, max) {
        if(variable < min) return min > max ? max : min;
        if(variable > max) return max;
        return variable;
    }

    function getFirstElementChild(element) {
        element = element.firstChild;

        while(element && element.nodeType !== 1) {
            element = element.nextSibling;
        }

        return element;
    }

    var isScrolling = false;
    var mouseY = 0;
    var cScroll = 0;
    var momentum = 0;
    if("createTouch" in document) {
        content.addEventListener('touchstart', function(evt) {
            isScrolling = true;
            mouseY = evt.pageY;
            evt.preventDefault();
        }, false);
        content.addEventListener('touchmove', function(evt) {
            if(isScrolling) {
                evt = evt.touches[0];

                var dY = evt.pageY - mouseY;
                mouseY = evt.pageY;
                cScroll += dY;
                momentum = range(momentum + dY * Scroller.ACCELERATION, -Scroller.MAX_MOMENTUM, Scroller.MAX_MOMENTUM);

                var firstElementChild = getFirstElementChild(content);

                content.style.WebkitTransform = 'translateY(' + range(cScroll, -(firstElementChild.scrollHeight - content.offsetHeight), 0).toString() + 'px)';
            }
        }, false);
        window.addEventListener('touchend', function(evt) {
            isScrolling = false;
        }, false);
    } else {
        content.addEventListener('mousedown', function(evt) {
            isScrolling = true;
            mouseY = evt.pageY;
        }, false);
        content.addEventListener('mousemove', function(evt) {
            if(isScrolling) {
                var dY = evt.pageY - mouseY;
                mouseY = evt.pageY;
                cScroll += dY;
                momentum = range(momentum + dY * Scroller.ACCELERATION, -Scroller.MAX_MOMENTUM, Scroller.MAX_MOMENTUM);

                var firstElementChild = getFirstElementChild(content);

                content.style.WebkitTransform = 'translateY(' + range(cScroll, -(firstElementChild.scrollHeight - content.offsetHeight), 0).toString() + 'px)';
            }
        }, false);
        window.addEventListener('mouseup', function(evt) {
            isScrolling = false;
        }, false);
    }

    function scrollToTop() {
        cScroll = 0;
        content.style.WebkitTransform = '';
    }

    function performAnimations() {
        if(!isScrolling) {
            var firstElementChild = getFirstElementChild(content);
            cScroll = range(cScroll + momentum, -(firstElementChild.scrollHeight - content.offsetHeight), 0);
            content.style.WebkitTransform = 'translateY(' + range(cScroll, -(firstElementChild.scrollHeight - content.offsetHeight), 0).toString() + 'px)';
            momentum *= Scroller.FRICTION;
        }
    }

    return {
        scrollToTop: scrollToTop,
        animationId: setInterval(performAnimations, 33)
    }
}

Scroller.MAX_MOMENTUM = 100;
Scroller.ACCELERATION = 1;
Scroller.FRICTION = 0.8;
Was passiert, wenn Sie bounce:true? Sie könnten sich bewusst sein, es aber position:fixed funktioniert nicht im mobile safari (bis IOS 5). Aber dann in ios5, brauchen Sie sich nicht jedes plugin unterstützt kinetisches scrollen nativ. Wenn Sie das plugin eine option ist, haben Sie sich an touchScroll und Scroll-Fähigkeit?
bounce: true keinen Unterschied macht und ich nicht möchte, dass die Benutzer in der Lage sein, um einen Bildlauf über die Kanten sowieso. Ich bin der Tatsache bewusst, dass position: fixed funktioniert nicht im mobile Safari (aber es ist ja nicht so unterstützte, wie es ist unwirksam, weil mobile Safari nutzt einen gleitenden viewport statt eines festen ein), ich bin nicht auf iOS5 sowieso, und ja, ändern Sie das plugin eine option ist, so werde ich diejenigen ansehen, danke.
Ich habe versucht, um das setup dieses lokal, war aber nicht erfolgreich (vielleicht durch die ajax-Aufrufe, welche ich nicht haben, der php oder vielleicht war es spät in der Nacht). Ist es möglich für Sie zu dump static html, dass ich spielen kann (jsfiddle Schraube Dinge)? Erstaunlich, letztes Jahr war ich mit etwas anderem kinetisches scrollen mit guten Ergebnissen, ich konnte Sie nicht finden die gleichen plugin (und ich habe auf bewegt von diesem client auch). Ich werde jedenfalls versuchen Sie es erneut.
Hier ein jsFiddle: jsfiddle.net/minitech/QDuwk/1 funktionieren Die links nicht natürlich, aber das scrollen ist da. Sie kann wechseln es oben, von der Seite und nicht in der Lage sein, es wieder zu bekommen.
wurde dies jemals gelöst? Es ist ärgerlich, dass es Schriftrollen, die außerhalb der Inhalte Grenzen.

InformationsquelleAutor Ry- | 2011-08-15

Schreibe einen Kommentar