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

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

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

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

게시글 목록

번호 제목
21184
21166
21157
21136
21132
21124
21119
21114
21106
21095
21069
21063
21060
21058
21053
21035
21032
21028
21009
21000
20994
20993
20984
20979
20958
20935
20934
20930
20913
20883