簡體   English   中英

如何在jQuery中編寫do while循環

[英]How to write a do while loop in jquery

我試圖獲取一個具有設定顏色的變量,直到到達頁面下方一定的滾動距離為止,一旦到達該點,我希望該變量不再是該顏色並恢復為正常設置。 向上滾動頁面后,我不希望顏色返回。 我的第一個想法是JavaScript的while循環,但是我不確定這是最好的方法,還是如何在jquery中做到這一點。

到目前為止,這就是我所擁有的

if($('body').hasClass('page-template-homepage-php')){
    var oneShot = jQuery(window).scrollTop()
    var opacity = jQuery(window).scrollTop() / 100;
     if(opacity > 1){ opacity = 1; }
    //do{
    //  opacity = 1;} while(
    //      oneShot < 201);
    $('.background-wrapper').css('background-color', 'rgba(0, 0, 0, ' + opacity +')');
  }

我的第一個嘗試是

for(oneShot < 200; opacity = 1){
    if(oneShot = 200){
        break;
        }
    }

其次是

do{
    opacity = 1;} while(
        oneShot < 201);

顯然都使用JavaScript而不是jquery

有什么想法嗎?

需要說明的是 :當前,在頁面加載時,相關標題為純黑色。 一旦滾動了一個像素,上面發布的代碼使標題不透明,然后隨着滾動繼續向下,逐漸變回黑色。 所需的效果是加載頁面,標題為黑色,向下滾動超過100px,而標題保持黑色。 傳遞100像素后,向上滾動時,不透明度褪色將生效。 **

在回答真正的問題之前,需要注意以下幾點:

  1. 正如評論中所說的,java 不是 javascript
  2. 而jQuery 用JavaScript編寫圖書館
  3. 在javascript中,編寫無限循環以等待特定條件成真(UI方式)絕不是一個好主意

也就是說,這是一個如何解決問題的非常簡單的示例:

// attach a listener function to the window.scroll event:
$(window).on('scroll', function scrollListener(evt) {
  // each time the event gets triggered, get the scrollTop-value
  var scrollTopValue = $(window).scrollTop();

  // if it is above/below (don't use equal!) a certain value:
  if (scrollTopValue > 500) {
    // handle that condition:
    $('#test').addClass('foo');

    // remove the listener:
    $(window).off('scroll', scrollListener);
  }
});

演示: http : //jsbin.com/sobewute/2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM