2021-10-07

当我们默认打开一个帖子列表页的时候,如果这个帖子类表也存在的主题分类非常多的话,他默认就会折叠起来,但是我们通常希望默认丢失让他展开的,这样有利于用户第一次能直观的看到这个版块下的分类。

 

下面我就带着大家看看如何将它的默认状态修改为展开,首先我们打开这个模板页的模板文件,forumdisplay_list.htm找到这段代码

 

 

 

<scripttype="text/javascript">showTypes('thread_types');</script>

 

 

 

找到这个这个展开/收起的按钮时如何生成的。

 

 

 

 

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];

                       }

               }

       }

}

 

 

 

 

 

通过这段代码我们看到,默认的状态下如果主题分类不够多的话是没有那个控制按钮的,程序通过判断主题分类中的个数对<ul id="thread_types" class="ttp bm cl">的影响从而添加相应的代码,从而控制主题分类的显隐。

 

 

 

首先var baseh = o.getElementsByTagName('li')[0].offsetHeight * 2;

 

根据第一个主题分类的高乘以2,来判断主题分类的个数是否达到了2行。var tmph = o.offsetHeight;将会读取当前主题分类的父框的考度,如果超过了两行,他的实际高度就会大于baseh,则执行下面的代码,通过css默认隐藏掉多余的主题分类。然后插入展开/收起的控制按钮,并绑定onclick事件,进行逆操作。经过修改后的函数变为:

 

 

 

 

 

 

 

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];

                       }

               }

       }

}

 

 

 

打赏

好文章,更需要你的鼓励

本文由 氢设计 创作,除注明转载/出处外,均为本站原创,转载前请务必署名

最后编辑时间为:2021-11-23 10:21:01

本文链接:https://www.h2sheji.com/show-101.html