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

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

· 2년 전 · 1882 · 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년 전

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

게시글 목록

번호 제목
20141
20129
20120
20114
20106
20099
20097
20091
20050
20042
20039
20010
19996
19978
19969
19954
19911
19908
19907
19905
19904
19892
19882
19864
19861
19844
19831
19829
19820
19805