今天給大家講解一個下指示點,是關(guān)于主題分類展開效果的默認修改方法。
情況如下:當我們默認打開一個帖子列表頁的時候,如果這個帖子類表也存在的主題分類非常多的話,他默認就會折疊起來,但是我們通常希望默認丟失讓他展開的,這樣有利于用戶第一次能直觀的看到這個版塊下的分類。 下面我就帶著大家看看如何將它的默認狀態(tài)修改為展開,首先我們打開這個模板頁的模板文件,forumdisplay_list.htm找到這段代碼
showTypes('thread_types'); 找到這個這個展開/收起的按鈕時如何生成的。 - function showTypes(id) {
- var o = $(id);
- if(!o) return false;
- var s = o.className;
- var baseh = o.getElementsByTagName('li')[0].offsetHeight * 2;
- var tmph = o.offsetHeight;
- var lang = ['展開', '收起'];
- var cls = ['unfold', 'fold'];
- if(tmph > baseh) {
- var octrl = document.createElement('li');
- octrl.className = cls[0];
- octrl.innerhtml = lang[0];
- o.insertBefore(octrl, o.firstChild);
- o.className = s + ' cttp';
- octrl.onclick = function () {
- if(this.className == cls[0]) {
- o.style.height = 'auto';
- this.className = cls[1];
- this.innerHTML = lang[1];
- } else {
- o.style.height = '';
- this.className = cls[0];
- this.innerHTML = lang[0];
- }
- }
- }
- }
通過這段代碼我們看到,默認的狀態(tài)下如果主題分類不夠多的話是沒有那個控制按鈕的程序通過判斷主題分類中的個數(shù)對<ul id="thread_types" class="ttp bm cl">的影響從而添加相應(yīng)的代碼,從而控制主題分類的顯隱。首先var baseh = o.getElementsByTagName('li')[0].offsetHeight * 2; 根據(jù)第一個主題分類的高乘以2,來判斷主題分類的個數(shù)是否達到了2行。var tmph = o.offsetHeight;將會讀取當前主題分類的父框的考度,如果超過了兩行,他的實際高度就會大于baseh,則執(zhí)行下面的代碼,通過css默認隱藏掉多余的主題分類。然后插入展開/收起的控制按鈕,并綁定onclick事件,進行逆操作。經(jīng)過修改后的函數(shù)變?yōu)椋?/font> - function showTypes(id) {
- var o = $(id);
- if(!o) return false;
- var s = o.className;
- var baseh = o.getElementsByTagName('li')[0].offsetHeight * 2;
- var tmph = o.offsetHeight;
- var lang = ['展開', '收起'];
- var cls = ['unfold', 'fold'];
- if(tmph > baseh) {
- var octrl = document.createElement('li');
- octrl.className = cls[1];
- octrl.innerHTML = lang[1];
- o.insertBefore(octrl, o.firstChild);
- o.className = s + ' cttp';
- o.style.height = 'auto';
- octrl.onclick = function () {
- if(this.className == cls[0]) {
- o.style.height = 'auto';
- this.className = cls[1];
- this.innerHTML = lang[1];
- } else {
- o.style.height = '';
- this.className = cls[0];
- this.innerHTML = lang[0];
- }
- }
- }
- }
這樣就可以了,是不是非常簡單
|