Rumah  >  Soal Jawab  >  teks badan

javascript - isu skrol skrol

1, https://www.kayak.com.hk/holi... Kesan utama adalah kesan laman web ini.

Apabila meluncur bar skrol, p di sebelah kanan akan menatal ke bawah, dan p di sebelah kiri juga akan menatal dengan sewajarnya. Tetapi oleh kerana p di sebelah kiri terlalu panjang, bahagian atas perlu disembunyikan, dan kesan ini dicapai.
Apabila menatal ke atas, anda perlu menyembunyikan bahagian bawah p di sebelah kiri, yang kebanyakannya tersekat di sini. Saya telah mencuba kaedah, iaitu menilai kedudukan bar skrol depan dan belakang untuk memaparkannya Kesannya OK, tetapi jika halaman itu membeku, ia sepatutnya disebabkan oleh menilai bar skrol depan dan belakang beberapa kali. . Ini kodnya:

jika($(window).height() > 550){

var top  = 240;                    
if($(document).scrollTop() > top){
    var beforeScroll=$(document).scrollTop();
    var topIframe = -180;
    $("#SearchPackageLeftp").css({"position": "fixed","top": topIframe});
    $(window).scroll(function(){
        var afterScroll=$(document).scrollTop();
        var result=afterScroll-beforeScroll;
            if(result<0){
            var downIframe=10;
            $("#SearchPackageLeftp").css({"position": "fixed","top":downIframe});
        }
            beforeScroll=afterScroll;
    });
}else{
    $("#SearchPackageLeftp").css({"position": "relative","top": "0px"});
    }
}

Sila beri saya penjelasan. . Dah stuck sehari. . . . . Berada dalam talian pada bila-bila masa, jika anda tidak faham saya boleh menerangkannya secara terperinci. . Terima kasih semua

过去多啦不再A梦过去多啦不再A梦2694 hari yang lalu926

membalas semua(4)saya akan balas

  • 高洛峰

    高洛峰2017-06-26 10:57:45

    Jika halaman tersekat, bolehkah kita menganggap pendikit fungsi?

    if($(window).height() > 550){
        var top  = 240,
            timer = 0;                    
        if($(document).scrollTop() > top){
            var beforeScroll=$(document).scrollTop();
            var topIframe = -180;
            $("#SearchPackageLeftp").css({"position": "fixed","top": topIframe});
            $(window).scroll(function(){
                if (timer === 0) {
                    timer = setTimeout(function() {
                        timer = 0;
                        var afterScroll=$(document).scrollTop();
                        var result=afterScroll-beforeScroll;
                        if(result<0){
                            var downIframe=10;
                            $("#SearchPackageLeftp").css({"position": "fixed","top":downIframe});
                        }
                        beforeScroll=afterScroll;    
                    }, 500)
                }
                
            });
        }else{
            $("#SearchPackageLeftp").css({"position": "relative","top": "0px"});
        }
    }

    balas
    0
  • PHP中文网

    PHP中文网2017-06-26 10:57:45

    Saya rasa anda boleh mempertimbangkan untuk memantau acara skrol tetingkap Jika skrolTop mencapai ketinggian tertentu, berikan p kiri kedudukan tetap Jika kurang daripada ketinggian ini, batalkan kedudukan tetap

    balas
    0
  • 習慣沉默

    習慣沉默2017-06-26 10:57:45

    Cuba gunakan terjemah dan bukannya set atas dan bungkusnya dalam requestAnimationframe untuk melihat sama ada ia boleh menyelesaikan ketinggalan.

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-26 10:57:45

    Sudah diselesaikan

            function scrollHeight(topIframe){
                var top  = 240;    
                var timer=0;
                if($(document).scrollTop() > top){
                    var beforeScroll=$(document).scrollTop();
                    $("#SearchPackageLeftp").css({"position": "fixed","bottom": topIframe});
                    $("#SearchPackageLeftp").css("top","");
                    $(window).scroll(function(){
                        if(timer===0){
                            timer=setTimeout(function() {
                            timer=0;
                            var afterScroll=$(document).scrollTop();
                               var result=afterScroll-beforeScroll;
                            if(result<0){
                                $("#SearchPackageLeftp").addClass("scrollstyle");
                                if($(document).scrollTop()<top){
                                    var downIframe=0;
                                    $("#SearchPackageLeftp").css({"position": "relative","bottom":downIframe});
                                }
                            }else{
                                $("#SearchPackageLeftp").removeClass("scrollstyle");
                            }
                               beforeScroll=afterScroll;
                            },0)
                        }
                    });    
                }else{
                    $("#SearchPackageLeftp").css({"position": "relative","bottom": "0px"});
                }                
            }
    

    balas
    0
  • Batalbalas