2013年1月24日 星期四

為Blog加上Scroll To Top按鈕

以前曾經利用浮動式廣告/工具列的功能,在部落格上作過類似的Back To Top (Scroll To Top)的按鈕,那時候是用CSS來製作,後來因為覺得不需要就拿掉了…那是2010年的事囉…不需要的原因很簡單,一來我的文章沒有這麼長到要用到回到上方的按鈕,滑鼠滾輪給他滾一滾還算可以,長一點的文章,其實也只要按鍵盤上的HOME就可以回到頁面的最頂端。Back To Top的Button是英雄無用武之地。

2013年的現在,我寫的文章愈來愈長,而平板電腦用戶愈來愈多,沒有滑鼠給他滾、沒有鍵盤給他HOME,總是要提供個按鈕給瀏覽者按,所以又重新做了一次。

這次當然還是用到超連結(不然哩),CSS美化了一下,再利用JQUERY提供的現成的一些功能,製作了動態的回到上方按鈕(Dynamic Scroll To Top Button),如下圖,右下角的「▲回到上方▲Scroll to Top」就是了。

image

重點在於「動態」:
如果瀏覽畫面一開始就在最上方,按鈕是不會出現的。
當瀏覽畫面到往下移動,按鈕會「浮現出來」而不是彈出來
再來是當按下按鈕時,畫面是「慢慢移動」到上方,而不是猛的跳到上面

怎麼完成呢?有興趣的話再往下看

CSS部分-按鈕的美化
<style type='text/css'>
#Dnow-ScrolltoTop {
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
   border-radius: 5px; 
   width:100px;
   background-color: #EEEEEE;
   background-color: rgba(238, 238, 238, 0.6);
   filter: progid:DXImageTransform.Microsoft.gradient(startColorStr=&#39;#99EEEEEE&#39;,EndColorStr=&#39;#99EEEEEE&#39;);
   text-align:center;
   padding:5px;
   position:fixed;
   bottom:10px;right:10px;
   cursor:pointer;
   color:#444;
   text-decoration:none;
   border:1px solid #C9C9C9;
}
</style>
JQUERY部分-讓按鈕變動態
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js' type='text/javascript'/>
<script type='text/javascript'>
$(function() {
    $.fn.scrollToTop = function() {
    $(this).hide().removeAttr(&quot;href&quot;);
    if ($(window).scrollTop() != &quot;0&quot;) {
        $(this).fadeIn(&quot;slow&quot;)
    }
    var scrollDiv = $(this);
    $(window).scroll(function() {
        if ($(window).scrollTop() == &quot;0&quot;) {
        $(scrollDiv).fadeOut(&quot;slow&quot;)
        } else {
        $(scrollDiv).fadeIn(&quot;slow&quot;)
        }
    });
    $(this).click(function() {
        $(&quot;html, body&quot;).animate({
        scrollTop: 0
        }, &quot;slow&quot;)
    })
    }
});
$(function() {
    $(&quot;#Dnow-ScrolltoTop&quot;).scrollToTop();
});
</script>
HTML部分-在頁面上加上hyperlink
<a href='#' id='Dnow-ScrolltoTop' style='display:none;'>&#9650;回到上方&#9650;<br />Scroll to Top </a>
最後,佈置到Blogger上

為了顧及佈置到Blogger上的便利性,這次索性所有的功能都不用LINK的方式另外連結資源文件,全部都寫在一起。(如果是要把同樣樣式的Scroll To Top大量佈置到很多網頁的話,那麼用LINK的方式比較好處理)。至於Blogger上哪裡可以同時又放HTML、JavaScript、CSS呢?當然是在<body>裡啦。

image

編輯HTML的功能在Blogger的設計頁面中,二點要注意的:
1、編輯前勾選「展開小裝置範本」,以免寫在不該寫的地方
2、注意要放在</body>以前,避免網頁Render時因這支小咖程式碼卡住。

1 則留言:

Related Posts Plugin for WordPress, Blogger...
// Dnow Function