X3 後默認主導航固定的修改方案
這裏要説明的是:discuz x3 後官方風格的導航是可以浮動的,也就是默認主導航固定的。這個在後台可以進行設置,具體設置方法如下:
後台界面設置-論壇首頁設置-關閉頂部導航固定
當然這裏如果修改的話,要注意主題列表頁以及帖子內容頁也都需要修改一致,要麼都固定要麼都不固定。
然後這就是默認主導航固定的修改方案嗎?
當然這樣還是不行的,你不能做了一個模板,用户安裝了後,還要去後台設置下這個才能用吧。
有些模板製作出來,就是要主導航不固定,因為在主導航的父元素標籤裏比如<hd> 裏已經做了固定的設置,那就不需要官方的後台控制是否固定了。
當然這個功能無非是觸發了 js 事件,所以可直接去重寫相關的 js 文件即可。
那麼相關的 js 文件又在哪兒呢?
discuz 存在了風格基礎文件存放的目錄,也就是/static/js 這個目錄裏。
在這裏找到 forum.js,將其拷貝出來,進行重寫。根據導航的 id="nv",找到事件監聽函數,進行相關修改即可。如果要你做的模板不要這個控制,直接刪了即可。
該函數相關代碼如下:
function fixed_top_nv(eleid, disbind) {
this.nv = eleid && $(eleid) || $('nv');
this.openflag = this.nv && BROWSER.ie != 6;
this.nvdata = {};
this.init = function (disattachevent) {
if(this.openflag) {
if(!disattachevent) {
var obj = this;
_attachEvent(window, 'resize', function(){obj.reset();obj.init(1);obj.run();});
var switchwidth = $('switchwidth');
if(switchwidth) {
_attachEvent(switchwidth, 'click', function(){obj.reset();obj.openflag=false;});
}
}
將你拷貝出來的修改過的 forum.js 放到你設置的 {STYLEIMGDIR} 擴展目錄,然後再引入即可。