willy800510 / logoWeb

Logo Web
0 stars 0 forks source link

首頁進入介紹 index_enterAd.php #7

Open willy800510 opened 3 years ago

willy800510 commented 3 years ago
  1. <md 左側導覽在scrolling 時 旁邊紅色bar 會有奇怪的左右位移(首頁及購買流程旁的bar左右位移明顯

  2. <md 的左側導覽有套bootstrap 的scrollSpy, 但都要等整個區塊都出現(用id綁定) 左側導覽才會,是用offset調整嗎?

    <div data-spy="scroll" data-target="#enterAd-md" data-offset="-20"></div>
  3. 大於md左上導覽列 紅色原點 第341行

    <div id="trackDot" class="position-absolute"></div>

    希望當頁面(carousel-item)換頁,紅色原點要自動移動到相對應標題(.carousel-indicators li)且滑鼠hover在不同標題時也會跟隨 同時希望像用::after寫法的位置一樣,在各標題置中位置,試著用在left後面+要位移px

第771

  var noX,noY;
  var easeName = 'easeOutExpo';
  var easeNameInit = 'easeOutElastic';

  window.onload=function(){
        noX = $('.carousel-indicators .active').offset().left+12;
        noY = $('.carousel-indicators .active').offset().top;
        $('#trackDot').stop().animate({left:noX},300,easeNameInit);
        $('.carousel-indicators li').hover(
            function(){
                noXhover = $(this).offset().left+28;
                $('#trackDot').stop().animate({left:noXhover},500,easeName);
            },
            function(){
                $('#trackDot').stop().animate({left:noX},500,easeNameInit);
            }
        );
    }
joyuhuang commented 3 years ago
  1. 沒有明確找出是什麼原因造成這個奇怪的左右位移,我懷疑是 https://github.com/willy800510/logoWeb/blob/e883fc8d9f300dc49d4db005a1ac6e60cfd5f082/index_enterAd.php#L50 這個百分比造成的,改成-8px好像就不會位移了

  2. 不太明白"要等整個區塊都出現(用id綁定) 左側導覽才會"的意思@@

  3. 不確定這是不是你想要問的

    
    // >md 導覽列的粉紅圓點
    var noX;
    var easeName = 'easeOutExpo';
    var easeNameInit = 'easeOutElastic';
    var dot = $('#trackDot');

// 設定粉紅圓點位置的function function moveDot (no, easeNameInit) { var curr = $('.carousel-indicators li').eq(no); //設定curr(當前項目)是.carousel-indicators li的第幾個

noX = curr.offset().left + curr.width() / 2 - dot.width();  //元素最左邊坐標+整個元素的一半寬-圓點寬度
dot.stop().animate({left:noX},300,easeNameInit);

} // 一進頁面先執行一次 設定粉紅圓點位置 moveDot(0, easeNameInit);

// 當輪播內容切換時 $('.carousel').on('slide.bs.carousel', function (ev) { // ev.to 是要切換到的那個區塊的編號,也就是即將被加上.active的那個編號 // 這個編號剛好和第幾個(eq())所需要的值相同,所以直接拿來使用 moveDot(ev.to, easeNameInit); })

$('.carousel-indicators li').hover( function(){ noXhover = $(this).offset().left + $(this).width() / 2 - dot.width(); dot.stop().animate({left:noXhover},500,easeName); }, function(){ dot.stop().animate({left:noX},500,easeNameInit); } );


把這些放到**第768行**的 `});` 之前就可以了,不需要再加window.onload=function(){} 
(因為 window.onload 和 $(document).ready(function(){}) 的作用很類似,目前的需求直接用ready就可以)