成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Django搭建個(gè)人博客:回到頂部浮動(dòng)按鈕、矢量圖標(biāo)、頁腳沉底和粘性側(cè)邊欄

lovXin / 3443人閱讀

摘要:本章集中介紹四個(gè)重要的小功能回到頂部浮動(dòng)按鈕矢量圖標(biāo)頁腳沉底和粘性側(cè)邊欄。因?yàn)槲覀兿朐谌径紦碛羞@個(gè)按鈕,所以將剛寫好的模塊引用到中在后面引入注意模塊用到了,因此要在后面引入。

本章集中介紹四個(gè)重要的小功能:回到頂部浮動(dòng)按鈕、矢量圖標(biāo)、頁腳沉底粘性側(cè)邊欄。

這幾個(gè)功能與Django基本沒啥關(guān)系,更多的是前端知識(shí),但是對(duì)博客網(wǎng)站都很重要,問的讀者也比較多,因此也集中講一下好了。

回到頂部浮動(dòng)按鈕

當(dāng)用戶拜讀完你的博文后,可能想回到文章開頭重新閱讀,或者審視其中的某些內(nèi)容。如果文章內(nèi)容較多,不?;瑒?dòng)滾輪回頁面頂部未免有點(diǎn)太讓人煩躁了。

一種解決辦法是增加一個(gè)回到頂部的浮動(dòng)按鈕。當(dāng)頁面向下滾動(dòng)到某個(gè)位置后,按鈕就呈現(xiàn)在頁面右下角;點(diǎn)擊按鈕,頁面就回到頂部。這個(gè)功能 Bootstrap 4 似乎沒有提供,但也不復(fù)雜,就自己用 JavaScript 和 CSS 寫吧。

templates目錄新建back_to_top_func.html文件,寫入以下代碼:

templates/back_to_top_func.html








代碼分成html、javascriptcss三部分。

HTML部分只有一行,用button標(biāo)簽表示了浮動(dòng)按鈕的容器。

JavaScript部分主要用到了Jquery的語法。頁面加載完成后開始監(jiān)聽兩個(gè)事件:

當(dāng)用戶點(diǎn)擊浮動(dòng)按鈕時(shí),將頁面滾動(dòng)到頂部

當(dāng)頁面滾動(dòng)時(shí),根據(jù)頁面距離頂部的距離,決定按鈕顯示或隱藏

CSS部分最長(zhǎng)但也很簡(jiǎn)單,主要定義了按鈕的位置、大小、圖案等樣式。讀者可以試著、改動(dòng)、刪除部分代碼,看看按鈕形態(tài)會(huì)怎樣變化。

核心代碼就寫好了。有點(diǎn)小瑕疵的是前面在footer.html中定義了class="fixed-bottom",這個(gè)屬性的顯示層級(jí)很高,會(huì)將浮動(dòng)按鈕給覆蓋掉。因此刪除templates/footer.html中的fixed-bottom屬性:

templates/footer.html

...

...
z-index這個(gè)css樣式?jīng)Q定了頁面中容器的顯示順序,數(shù)值越大則顯示優(yōu)先級(jí)越高。

之所以fixed-bottom會(huì)覆蓋掉浮動(dòng)按鈕,就是因?yàn)樗鼘-index設(shè)置成了一個(gè)很大的數(shù)值。

因?yàn)槲覀兿朐谌径紦碛羞@個(gè)按鈕,所以將剛寫好的模塊引用到base.html中:

templates/base.html

...


    ...

    
    
    ...
    
    {% include "back_to_top_func.html" %}


...

注意模塊用到了Jquery,因此要在Jquery后面引入。

效果如下:

點(diǎn)擊按鈕后,頁面滾回到頂部。

矢量圖標(biāo)

與老版本不同,Bootstrap 4 中也沒有自帶圖標(biāo)。作為補(bǔ)償,官方也推薦了幾款強(qiáng)大且免費(fèi)的第三方矢量圖標(biāo)提供商。我比較喜歡的是Font Awesome,提供1500+免費(fèi)圖標(biāo)(以及5000+付費(fèi)圖標(biāo)),完全夠用了。各種你想得到想不到的圖標(biāo)都有:

用法也很簡(jiǎn)單,你甚至不用將其下載到本地(當(dāng)然想下載也可以)。根據(jù)官網(wǎng)的提示,直接在base.html中引入:

templates/base.html

...

...

然后在頁面中插入某個(gè)圖標(biāo)的標(biāo)簽就可以用了。

首先在官網(wǎng)圖標(biāo)庫搜索想要的圖標(biāo),比如eye

點(diǎn)擊圖標(biāo)進(jìn)去后就能看到它的標(biāo)簽名稱

將此標(biāo)簽名稱復(fù)制到你的網(wǎng)頁中,圖標(biāo)就渲染出來了。

很神奇的是,矢量圖標(biāo)跟普通的字體是完全類似的,你可以通過CSS定義圖標(biāo)的顏色(color)、大?。?b>font-size)等樣式。

嘗試一下。將圖標(biāo)代碼添加到templates/article/list.html中的列表循環(huán):

templates/article/list.html

...

{{ article.total_views }}    {{ article.comments.count }}    {{ article.created|date:"Y-m-d" }}

...

看看效果:

好玩吧。讀者朋友慢慢挑選心儀的圖標(biāo),到自己的博客中吧。

相比寫代碼來說,這是個(gè)相當(dāng)愉悅的過程。

頁腳沉底

剛才做浮動(dòng)按鈕時(shí),取消了頁腳固定在底部的fixed-bottom。

按鈕倒是沒被遮蓋了,但又冒出來另一個(gè)煩人的問題,請(qǐng)看下圖:

當(dāng)頁面內(nèi)容較少時(shí),頁腳下方居然空出來一大塊地方,太丑了。

《Sticky Footer, Five Ways》羅列了5種方法解決這個(gè)問題,有興趣的同學(xué)可深入了解。

需要修改base.htmlfooter.html兩個(gè)文件。先貼改動(dòng)代碼:

templates/base.html

...

    {% include "header.html" %}
    
    
    
{% block content %}{% endblock content %}
{% include "footer.html" %} ... ...
templates/footer.html

...

...

代碼通過CSS樣式控制頁面尺寸不小于屏幕的高度,以及頁腳的高度為60px。不太好理解的主要有兩個(gè)地方:

#push容器留出一段與頁腳等高的空隙,避免正文內(nèi)容與頁腳重疊。

#wrapper容器的底部有一個(gè)負(fù)邊距,作用是給頁腳容器讓出位置。這個(gè)負(fù)邊距你不設(shè)置也可以,無非就是底部多出高度為60px的空白罷了。

刷新頁面:

舒服了。

隨著項(xiàng)目逐漸增大,HTML、JavaScript、CSS交織在一起,也更加混亂。

雖然教程沒有把這三種類型的代碼分離開,但是你應(yīng)該考慮這樣做。

粘性側(cè)邊欄

目前教程將文章目錄放置在文章的右側(cè),這就是相當(dāng)于是個(gè)側(cè)邊欄。問題是當(dāng)用戶向下閱讀文章時(shí),目錄卻不會(huì)固定在頁面中,而是幾下就翻得沒影了,影響體驗(yàn)。

粘性側(cè)邊欄就是來解決這個(gè)問題的。當(dāng)頁面向下滾動(dòng)時(shí),粘性側(cè)邊欄會(huì)靈活的固定在屏幕中,保證用戶在任何位置都可以看到側(cè)邊欄中的內(nèi)容。

具體工作模式如下圖:

考慮到側(cè)邊欄有可能會(huì)很長(zhǎng),因此設(shè)計(jì)出足夠“聰明”的粘性側(cè)邊欄也不那么容易。教程將用到Abouolia的粘性側(cè)邊欄插件,強(qiáng)大且小巧,讀者可以去官方示例感受一下。

將插件的GitHub庫下載到本地后,因?yàn)椴┛晚?xiàng)目已經(jīng)加載好了Jquery,所以只需要用到dist目錄下的jquery.sticky-sidebar.min.js這個(gè)文件就可以了。在項(xiàng)目的static目錄下新建目錄sticky_sidebar,將其粘貼進(jìn)去:

/static/sticky_sidebar/jquery.sticky-sidebar.min.js

因?yàn)橹恍枰?strong>文章詳情頁面用到,所以在詳情頁中引入模塊就夠用了:

templates/article/detail.html

...



...




...

{% block script %}




...
{% endblock script %}

按照插件的要求,側(cè)邊欄套上了兩層容器,第一層含有屬性id="sidebar" class="sidebar",第二層含有屬性class="sidebar__inner"。然后設(shè)置樣式,引入靜態(tài)文件并調(diào)用插件,沒什么好說的,照做就可以了。與前面的章節(jié)相同,由于插件需求Jquery,一定要把 JavaScript 語句放到{% block script %}中,否則會(huì)報(bào)錯(cuò)哦。

插件還有其他可設(shè)置的規(guī)則,詳情見官方文檔

刷新頁面,不管你怎么滾動(dòng)頁面,目錄都顯示在屏幕中,并且隨著滾輪很自然的上下移動(dòng)了:

總結(jié)

本章學(xué)習(xí)了回到頂部浮動(dòng)按鈕、矢量圖標(biāo)、頁腳沉底和粘性側(cè)邊欄四個(gè)功能。

就像前面說的,這幾個(gè)功能跟Django沒什么關(guān)系,但是既然要想做一個(gè)完整的博客網(wǎng)站,就不要抱有幻想。光靠那么一點(diǎn)點(diǎn)Django代碼是不可能的,什么知識(shí)你都得會(huì)一點(diǎn)才行。

讀者以后會(huì)遇到更加多樣的編程工具,一定不要被“Django程序員”這個(gè)頭銜所束縛,勇敢去學(xué)吧。誰讓你已經(jīng)上了賊船呢。


有疑問請(qǐng)?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。

或Email私信我:[email protected]

項(xiàng)目完整代碼:Django_blog_tutorial

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43569.html

相關(guān)文章

  • 前端小白也能快速學(xué)會(huì)的博客博客美化全攻略

    摘要:前端小白也能快速學(xué)會(huì)的博客園博客美化全攻略呦,博客園的自我修養(yǎng)是什么第一條,別只顧收藏和偷師呀,記得點(diǎn)推薦或關(guān)注本人喔美化方法論簡(jiǎn)介一般而言,需要選一個(gè)默認(rèn)的,然后在該基礎(chǔ)上調(diào)整。或者也可進(jìn)博客園園子頁面,發(fā)狀態(tài)博客園團(tuán)隊(duì),申請(qǐng)開通權(quán)限。 前端小白也能快速學(xué)會(huì)的博客園博客美化全攻略 A呦V,博客園er的自我修養(yǎng)是什么?第一條,別只顧收藏和偷師呀,記得點(diǎn)推薦或關(guān)注本人喔~ 美化方法論簡(jiǎn)...

    StonePanda 評(píng)論0 收藏0
  • 如何定制 Horizon

    摘要:自定義簡(jiǎn)單的如果你想自定義啟動(dòng)界面或頂部導(dǎo)航欄的,你需要在主題的根目錄下創(chuàng)建一個(gè)文件夾,將自定義的和圖片放在里面。你可以通過變量來定制頂部導(dǎo)航欄的高度。如果圖片的高度比頂部導(dǎo)航欄的高度小,那么會(huì)垂直居中顯示。 本文譯自 openstack-horizon 官方文檔 主題 從 Kilo 版本開始,Horizon 支持通過主題來定制樣式。主題內(nèi)包含一個(gè) _variables.scss 文件...

    MartinDai 評(píng)論0 收藏0
  • 個(gè)人博客園樣式、背景及細(xì)節(jié)美化過程

    摘要:踩坑注意導(dǎo)入后要勾選禁用默認(rèn)否則會(huì)造成各種顯示問題我的文件可以右鍵查看網(wǎng)頁源代碼獲取,使用時(shí)基于主題,懶得折騰的可以直接下載。主頁美化: 主要參考嘻哈燒餅的美化,在TA的基礎(chǔ)上增加了對(duì)主頁背景、色調(diào)以及側(cè)邊欄的調(diào)整 原帖地址:https://www.cnblogs.com/seanshao/p/5716543.html 修改博客園背景的代碼如下(在原帖使用的css文件中修改): body ...

    番茄西紅柿 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:使用Form表單類發(fā)表新文章

    摘要:一些表單界面元素文本框或復(fù)選框非常簡(jiǎn)單并內(nèi)置在中,而其他會(huì)復(fù)雜些像彈出日期選擇等操作控件。和標(biāo)簽中的屬性指定了當(dāng)前文本框提交的數(shù)據(jù)的名稱,它必須與表單類中的字段名稱對(duì)應(yīng),否則服務(wù)器無法將字段和數(shù)據(jù)正確的對(duì)應(yīng)起來。 前面我們已經(jīng)學(xué)會(huì)如何用Markdown語法書寫文章了。 但是還有問題呀。之前寫文章都是在后臺(tái)中進(jìn)行的,萬一有別的普通用戶也要發(fā)表文章怎么辦?萬一我想拓展些后臺(tái)中沒有的提交驗(yàn)證...

    Java3y 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:使用 Bootstrap 4 改寫模板文件

    上一章我們的網(wǎng)站頁面實(shí)在太粗糙,你肯定不會(huì)拿來做真正的博客首頁。因此這章我們要借助Bootstrap的力量,改寫一個(gè)大氣的博客。 配置Bootstrap 4 Bootstrap是用于網(wǎng)站開發(fā)的開源前端框架(前端指的是展現(xiàn)給最終用戶的界面),它提供字體排印、窗體、按鈕、導(dǎo)航及其他各種組件,旨在使動(dòng)態(tài)網(wǎng)頁和Web應(yīng)用的開發(fā)更加容易。 Bootstrap有幾個(gè)版本都比較流行,我們選擇最新版本的Boots...

    lolomaco 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<