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} 擴充套件目錄,然後再引入即可。