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

상단으로 를 상하 이동과 퍼센트 표시하기(다크모드추가)

· 2년 전 · 1884 · 7

[재 업로드]

33282748_1689751832.1396.png 이렇게 됩니다.

 

1. 파일(button_top.php)을 /lib 또는 /theme/사용테마/lib 에 넣으세요.

2. tail.sub.php의 제일 위쪽 ?>바로 위에 아래를 복사하여 붙여넣기 하세요.

[code]

$config['cf_theme'] ? include_once(G5_THEME_PATH.'/lib/button_top.php') : include_once(G5_PATH.'/lib/button_top.php');

[/code]

끝..

 

button_top.php 내용

[code]

<button type="button" id="button_top">
  <i class="fa fa-arrows-v" aria-hidden="true"></i><span class="sound_only">상단으로</span>
</button>

<script>
jQuery(function($) {
  var $elem = $("html, body");
  var where = 0;
  $("#button_top").on("click", function() {
    var windowHeight = $(document).height() - $(window).height();
    var winhalf = windowHeight * 0.5; // Calculate the new winhalf value

    if ($elem.scrollTop() < winhalf) {
      $elem.animate({ scrollTop: $elem.prop("scrollHeight") }, 400);
      where = 1;
    } else {
      $elem.animate({ scrollTop: 0 }, 400);
      where = 0;
    }
  });
});

$(document).ready(function() {
  $(window).scroll(function() {
    var windowHeight = $(document).height() - $(window).height();
    var winhalf = windowHeight * 0.5; // Calculate the new winhalf value
    var scrollPos = $(document).scrollTop();
    var scrollPercent = (window.scrollY / (document.documentElement.scrollHeight - window.innerHeight)) * 100;
    var $buttonTop = $('#button_top'); // Selector variable

    if (scrollPos > winhalf) {
      $buttonTop.css({
        "border-color": "red",
        "color": "red"
      }).html("<i class='fa fa-arrow-up' aria-hidden='true'></i>");
    } else {
      $buttonTop.css({
        "border-color": "blue",
        "color": "blue"
      }).html("<i class='fa fa-arrow-down' aria-hidden='true'></i>");
    }

    if ($('#scroll_percentage').length === 0)
        {
            $('<p id="scroll_percentage"></p>').appendTo($buttonTop);
        }
        $('#scroll_percentage').text(Math.round(scrollPercent));

    <?php if(file_exists(G5_THEME_PATH.'/css/default_dark.css')){ ?>
        if (scrollPos > 100 && scrollPos < 200) {
          $('#button_top').css("display", "none");
          $('.fix_ch').css("display", "block");
        } else {
          $('.fix_ch').css("display", "none");
          $('#button_top').css("display", "block");
        }
    <?php } ?>

    if (!g5_is_mobile) {
        $('#gnb').css({
          "display": "block",
          "z-index": "10000"
        });
        if (scrollPos > 186) {
          $('#gnb').css({
            "position": "fixed",
            "top": "0",
            "width": "100%"
          });
        } else {
          $('#gnb').css({
            "position": "relative"
          });
        }
    }

  });
});
</script>

<style>
  #top_btn, .fix_ch {
    display:none
  }

  #button_top {
    position: fixed;
    bottom: 20px;
    right: 3px;
    width: 43px;
    height: 43px;
    line-height: 40px;
    border-radius: 50%;
    border: 1px solid #33333310;
    color: #333;
    text-align: center;
    font-size: 15px;
    z-index: 220;
    background: rgba(255, 255, 255, 0.5);
  }

  #button_top:hover {
    border-color: #3059c750;
    background: #3059c750;
    color: #333;
  }

  #scroll_percentage {
    font-size: 12px;
    margin-top: -27px;
    font-weight: bold;
    z-index: 999;
  }
</style>

[/code]

스크롤 시 메뉴가 상단에 고정됨니다.

댓글 작성

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

로그인하기

댓글 7개

출력코드를 저렇게 하면, /lib폴더에 넣고 테마 tail에 불러올 때 못 불러오더라구요.
그냥 출력코드를 깔끔하게, /lib 폴더에 넣은 경우와 테마안 lib폴더에 넣은 경우 사용하는 코드를 달리해서 정리해주는 게 좋을 듯 합니다.
2년 전
@sinbi sinbi님 감사 합니다. tail.sub.php위치의 lib폴더를 생각 한 건데, 가끔 테마를 사용하지 않는 사람들도 있어서.. 설명이 부족했습니다.
오 좋은데요 감사합니다 적용해봐야겟네요
2년 전
감사 합니다.
2년 전
좋아보여요 근데 숫자의미는 뭐죠?
2년 전
@피라미드 상하 퍼센트 값 입니다. 감사 합니다.
1년 전

모바일에서 더욱 정교하도록 코드를 한군데 수정 하였습니다.

게시글 목록

번호 제목
19430
19420
19398
19387
19379
19371
19358
19354
19345
19343
19330
19322
19303
19296
19283
19274
19256
19244
19238
19230
19229
19219
19201
19184
19183
19177
19153
19133
19132
19090