【问题标题】:Back to top icon not showing on site, even though showing in local返回顶部图标未显示在网站上,即使显示在本地
【发布时间】:2017-08-08 18:09:35
【问题描述】:

我有一个返回顶部按钮,当滚动到页面顶部时应该会出现,而当它转到页面顶部时会消失。

测试时它出现在我的本地站点副本中,但在互联网上,它没有显示,只显示文本链接。

网站位于:https://www.ivanteong.com

返回顶部按钮的实现如下:

HTML 页面底部但在 JavaScript 源代码上方:

<a href="#0" class="cd-top">Top</a></div>

HTML 页面底部的 JavaScript 源代码(当我将其放入页眉时,菜单滚动出现问题):

<!-- JS -->
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script> 
<script src="../js/waypoints.min.js"></script>
<script src="../js/counterup.min.js"></script>                 
<script src="../js/inview.min.js"></script>                 
<script src="../js/easypiechart.js"></script>                 
<script src="../js/magnific-popup.min.js"></script>                                     
<script src="../js/main.js"></script>
<script src="../js/backtotop.js"></script>

ma​​in.css 中的 CSS 样式:

.cd-top {
  display: inline-block;
  height: 40px;
  width: 40px;
  position: fixed;
  bottom: 40px;
  right: 10px;
  z-index: 1000;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  /* image replacement properties */
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  background: GREY url(../images/cd-top-arrow.svg) no-repeat center 50%;
  visibility: hidden;
  opacity: 0;
  border-radius: 10px;
  -webkit-transition: opacity .3s 0s, visibility 0s .3s;
  -moz-transition: opacity .3s 0s, visibility 0s .3s;
  transition: opacity .3s 0s, visibility 0s .3s;
}
.cd-top.cd-is-visible, .cd-top.cd-fade-out, .no-touch .cd-top:hover {
  -webkit-transition: opacity .3s 0s, visibility 0s 0s;
  -moz-transition: opacity .3s 0s, visibility 0s 0s;
  transition: opacity .3s 0s, visibility 0s 0s;
}
.cd-top.cd-is-visible {
  /* the button becomes visible */
  visibility: visible;
  opacity: 1;
}
.cd-top.cd-fade-out {
  /* if the user keeps scrolling down, the button is out of focus and becomes less visible */
  opacity: .5;
}
.no-touch .cd-top:hover {
background-color: #FF432E;
opacity: 1;
}

backtotop.js:

jQuery(document).ready(function($){
    // browser window scroll (in pixels) after which the "back to top" link is shown
    var offset = 0,
        //browser window scroll (in pixels) after which the "back to top" link opacity is reduced
        offset_opacity = 1500,
        //duration of the top scrolling animation (in ms)
        scroll_top_duration = 1500,
        //grab the "back to top" link
        $back_to_top = $('.cd-top');

    //hide or show the "back to top" link
    $(window).scroll(function(){
        ( $(this).scrollTop() > offset ) ? $back_to_top.addClass('cd-is-visible') : $back_to_top.removeClass('cd-is-visible cd-fade-out');
        if( $(this).scrollTop() > offset_opacity ) { 
            $back_to_top.addClass('cd-fade-out');
        }
    });

    //smooth scroll to top
    $back_to_top.on('click', function(event){
        event.preventDefault();
        $('div,body,html').animate({
            scrollTop: 0 ,
            }, scroll_top_duration
        );
    });
});

cd-top-arrow.svg:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<polygon fill="#FFFFFF" points="8,2.8 16,10.7 13.6,13.1 8.1,7.6 2.5,13.2 0,10.7 "/>
</svg>

【问题讨论】:

  • 我看到带有向上箭头的按钮,你有什么问题
  • 我认为你的代码没有问题,我可以看到箭头
  • 你看到了吗?你用什么浏览器?我在 Chrome 或 Safari 上的 www.ivanteong.com 上没有看到它
  • 我已经检查了 firefox 和 chrome prntscr.com/g5ruma
  • chrome v60 我可以看到箭头

标签: javascript jquery html css svg


【解决方案1】:

这是一个缓存问题。我不能 100% 确定,但我怀疑它与 Cloudflare 有关,我用它来管理我的 DNS、强制 HTTPS 并将流量从非 www 重定向到 www。 Paul LeBeau 发现css文件没有更新,我发现对于www的版本没有更新,但是非www的更新了。在我加载了这两种 CSS 变体后,我不知道发生了什么,但它又可以工作了。也许我“强制”Cloudflare 将 CSS 文件更新到最新版本,但它无法使用 www 站点的 CSS 缓存副本。

更新:我确定这是 Cloudflare 的缓存问题。在更改页面加载的加载动画的 CSS 后,我再次遇到了同样的问题。如果我想通过清除 Cloudflare 缓存中的所有内容来确保 Cloudflare 仅缓存文件的最新副本,则此问题已得到解决。然后它就可以毫无问题地为我的 DNS 加载最新代码了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2014-08-12
    • 1970-01-01
    相关资源
    最近更新 更多