테스트 사이트 - 개발 중인 베타 버전입니다

카운팅 스크립트 문의드립니다. 채택완료

moonlight205 2년 전 조회 2,129

구글링으로 카운팅 스크립트 사용중인데요.

해당 위치에 화면이 가면 숫자가 0에서 적어둔 숫자로 올라가는 기능입니다.

1개로 사용하다가 총 5개의 숫자가 필요하네요.

어떻게 하면 다중으로 사용가능할까요?

var memberCountConTxt1 = 134;

var memberCountConTxt2 = 30;

var memberCountConTxt3 = 99;

var memberCountConTxt4 = 168;

var memberCountConTxt5 = 300;

이렇게 사용하려 합니다.

 

 

var isVisible = false;

$(window).on("scroll", function () {
  if (checkVisible($(".up_number")) && !isVisible) {
    var memberCountConTxt1 = 134;

    $({ val: 0 }).animate(
      { val: memberCountConTxt1 },
      {
        duration: 1500,
        step: function () {
          var num = numberWithCommas(Math.floor(this.val));
          $(".memberCountCon1").text(num);
        },
        complete: function () {
          var num = numberWithCommas(Math.floor(this.val));
          $(".memberCountCon1").text(num);
        },
      }
    );

    function numberWithCommas(x) {
      return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    }
    isVisible = true;
  }
});

function checkVisible(elm, eval) {
  eval = eval || "object visible";
  var viewportHeight = $(window).height(), // Viewport Height
    scrolltop = $(window).scrollTop(), // Scroll Top
    y = $(elm).offset().top,
    elementHeight = $(elm).height();

  if (eval == "object visible")
    return y < viewportHeight + scrolltop && y > scrolltop - elementHeight;
  if (eval == "above") return y < viewportHeight + scrolltop;
}
 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
2년 전

</p>

<p><style>

.up_number {

    background-color: #ddd;

    width: 1em;

    height: 100em;

}

.memberCountCon {

    position: fixed;

    border: 1px solid gray;

    width: 10em;

    height: 1.2em;

}

.memberCountCon1 { left: 1em; top: 1em; }

.memberCountCon2 { left: 3em; top: 3em; }

.memberCountCon3 { left: 5em; top: 5em; }

.memberCountCon4 { left: 7em; top: 7em; }

.memberCountCon5 { left: 9em; top: 9em; }

</style></p>

<p><script src="<a href="http://code.jquery.com/jquery.min.js"></script>" target="_blank" rel="noopener noreferrer">http://code.jquery.com/jquery.min.js"></script></a>

<script>

// var memberCountConTxt1 = 134;

// var memberCountConTxt2 = 30;

// var memberCountConTxt3 = 99;

// var memberCountConTxt4 = 168;

// var memberCountConTxt5 = 300;</p>

<p>var memberCountConTxts = {

    memberCountCon1: 134, 

    memberCountCon2: 30, 

    memberCountCon3: 99, 

    memberCountCon4: 168, 

    memberCountCon5: 300

};</p>

<p> </p>

<p>var isVisible = false;</p>

<p>$(window).on("scroll", function () {

  if (checkVisible($(".up_number")) && !isVisible) {

    var memberCountConTxt1 = 134;</p>

<p>    for (let k in memberCountConTxts) {

        drawAnim(k, memberCountConTxts[k]);

    }</p>

<p>    isVisible = true;

  }

});</p>

<p>function drawAnim(k, v) {

    $({ val: 0 }).animate(

      { val: v },

      {

        duration: 1500,

        step: function () {

          var num = numberWithCommas(Math.floor(this.val));

          $("." + k).text(num);

        },

        complete: function () {

          var num = numberWithCommas(Math.floor(this.val));

          $("." + k).text(num);

        },

      }

    );

}</p>

<p>function numberWithCommas(x) {

  return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

}</p>

<p>function checkVisible(elm, eval) {

  eval = eval || "object visible";

  var viewportHeight = $(window).height(), // Viewport Height

    scrolltop = $(window).scrollTop(), // Scroll Top

    y = $(elm).offset().top,

    elementHeight = $(elm).height();</p>

<p>  if (eval == "object visible")

    return y < viewportHeight + scrolltop && y > scrolltop - elementHeight;

  if (eval == "above") return y < viewportHeight + scrolltop;

}

</script></p>

<p>

<div class="up_number"></div>

<div class="memberCountCon memberCountCon1"></div>

<div class="memberCountCon memberCountCon2"></div>

<div class="memberCountCon memberCountCon3"></div>

<div class="memberCountCon memberCountCon4"></div>

<div class="memberCountCon memberCountCon5"></div></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

m
moonlight205
2년 전
코드가 훨씬 깔끔해졌네요.
보고 공부하겠습니다.
감사드립니다!!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인