html - 請問用Nodejs怎么制作導航點擊變色功能?
問題描述
最近在學習nodejs制作一個簡單的個人網站,模版用的ejs,但是有一個疑問,就是頁面公用的導航欄,怎么實現點擊跳轉后當前欄目變色呢?請求各位老司機提供一下思路,可能是新手,還沒轉換過來思維,麻煩解答。謝謝各位!
問題解答
回答1:例如我用的EJS模版:
<a href='http://www.leifengta.com.cn/index' /index') %>'>最新折扣</span>
在class中調用方法,傳入鏈接地址,目的是給當前class加上自定義的選中效果,例如active
app.js中:
var common = require(’./common’);app.use(common.activeUrl);
common.js中:
exports.activeUrl = function (req, res, next) { res.locals.activeNav = function (nav) { let result = ’’; let _path = req.path; if (nav == _path) { result = ’main-active’; } else { result = ’’; } return result; }; next();};回答2:
可以用css類解決,在css里創建current類
.current{ background-color:#0000FF; color:#FFFFFF}
點擊跳轉后給要變色的欄目設置類名為current
回答3:提供一個思路哈。你可以給用用導航欄的初始化函數傳遞一個參數,讓這個參數去區分其他菜單。給那個菜單實現變色
nav.init(curNavName){ //對name或者id或者自定義屬性值為curNavName的菜單進行變色操作。}//頁面發生跳轉的時候,你傳遞相關參數給nav.init()函數回答4:
我也想到傳參來設置CSS,不過從沒看見過那個類似功能的網站URL上是帶這個參數的。
或許可以用COOKIE,點擊某個導航連接的時候設置COOKIE的值為該欄目,導航欄當前欄目鏈接高亮根據這個值來顯示。
感覺還是不太優雅雖然能解決,坐等其它方法。
回答5:這叫面包屑功能,antd有類似組件 https://ant.design/components...
相關文章:
1. node.js - mongodb查找子對象的名稱為某個值的對象的方法2. javascript - QQ第三方登錄的問題3. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]4. 運行python程序時出現“應用程序發生異常”的內存錯誤?5. spring-mvc - spring-session-redis HttpSessionListener失效6. 在mac下出現了兩個docker環境7. 利用IPMI遠程安裝centos報錯!8. mysql - 查詢 修改數據庫優化問題吧9. 正在使用electron和node.js做桌面應用,需要實時監聽是否有網絡連接,node或者electron是否可以做到10. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。

網公網安備