国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Discuz > 正文

Discuz 高級教程 - discuz.htm 采用Tab樣式展示板塊

2024-09-11 09:04:53
字體:
來源:轉載
供稿:網友
按照慣例先來BB一下原理。        首先先要說discuz.htm。在默認模板的情況下,discuz的論壇首頁樣式與點擊版塊分區名稱后的樣式是一樣的,用的都是discuz.htm這個模板。只不過部分區域使用了<!--{if empty($gid)}-->來做區分。        在創作模板中,如果我們把版塊分區名稱和版塊名稱分別調用。當版塊分區名稱聚合在一起我們去點擊的時候,其實就已經形成了一個偽Tab。為什么這里要說是偽Tab呢。因為在點擊版塊分區名稱的時候,會產生URL的跳轉,其實說白了就是跳轉到對應的版塊分區名稱的頁面了。只不過模板的樣式一樣。        既然我們要做成Tab,那么肯定就不能有URL跳轉。于是經過幾天的研究和討論做出了這么一個框架
<div class="Currency_Tab">        <nav class="tab-hd">                <!--{loop}-->                        <li class="active><a href="javascript:void(0)">分區</a></li>                <!--{/loop}-->        </nav>        <div class="tab-bd">                <!--{loop $key }-->                        <div style="display:{if $key==0}block{else}none{/if};">                                版塊                        </div>                <!--{/loop}-->        </div></div>
      來說一下思路,這里比較復雜。        因為要用Tab做版塊分區名稱和版塊名稱的分離,那么這里就需要分開loop{實際的效果是版塊分區名稱單獨寫loop的查詢語句,版塊名稱使用默認模板的loop查詢語句}。        這還遠遠不夠,要做出最終的效果,對jQuery的Tab插件也要求很高。因為這里涉及到 tab-bd 里面必須要于 tab-hd 自動對接,不需要對 tab-hd 和 tab-bd 里的框架分別做對應的 id=          為什么<div class="tab-bd"></div>里只寫一個 <!--{loop}-->,而不是對應 tab-hd 的個數寫出對應的<div style="display: block;">版塊</div>呢?這里需要著重的解釋一下。         因為如果下面寫無限個(對應其 tab-hd 的個數)<div style="display: block;">版塊</div>,再在里面去寫loop。是可以省很多的事情,不需要考慮style="block"怎么給,也不用考慮怎么和 tab-hd 的個數自動對接。每一個<div style="display: block;">版塊</div>里面,直接loop出 tab-hd 對應的版塊名稱就可以。但是有一個地方需要注意,那就是這么寫,只能調用出已存在的版塊,如果后續添加新的版塊分區名稱和版塊名稱,那還需要在模板里再寫對應的查詢語句來loop。所以只能loop一次。    這樣一個Tab的版塊分區就形成了。如果想打開頁面時,先顯示的是全部版塊,那么就需要對上面的框架結構做一個改善
<div class="Currency_Tab">        <nav class="tab-hd">                <li class="active"><a href="javascript:void(0)">全部</a></li>                <!--{loop}-->                        <li><a href="javascript:void(0)">分區</a></li>                <!--{/loop}-->        </nav>        <div class="tab-bd">                <div style="display: block;">                        <!--{loop}-->                                全部版塊                        <!--{/loop}-->                </div>                <!--{loop}-->                        <div style="display: none;">                                版塊                        </div>                <!--{/loop}-->        </div></div>
如果使用帶有“全部”的Tab時,其他地方與上面的相同。唯獨需要注意的一個地方就是默認先展示的“全部版塊” 不能從Gid層開始loop,否則就不是按照版塊的列表排序而是Gid的。loop這里,需要剔除上面的Gid的loop。直接從版塊名稱開始loop。         最后: 這里需要特別注意的是:這個jQuery的Tab。是可以在同一個頁面多次使用的,如果最終的樣式 tab-hd 和 tab-bd 這2個框架并不能同時在class="Currency_Tab"里,        1.給包含tab-hd 和 tab-bd 的父級div層一個class="Currency_Tab"        2.如果不適合給父級class="Currency_Tab",那么這個頁面只能使用一次  
Jquery<script type="text/javascript">        jQuery(function(){                function tabs(tabTit,on,tabCon){                        jQuery(tabTit).children().hover(function(){                                jQuery(this).addClass(on).siblings().removeClass(on);                                var index = jQuery(tabTit).children().index(this);                                jQuery(tabCon).children().eq(index).show().siblings().hide();                        });                };        tabs(".tab-hd","active",".tab-bd");        });</script>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 酒泉市| 池州市| 桂平市| 阿拉善右旗| 新绛县| 安溪县| 建瓯市| 同仁县| 竹山县| 治多县| 资阳市| 滦平县| 博野县| 枣庄市| 太白县| 东乡| 大名县| 佛教| 财经| 金山区| 宿州市| 应用必备| 合水县| 清丰县| 绥芬河市| 太仓市| 林州市| 论坛| 六安市| 枝江市| 安仁县| 岚皋县| 石楼县| 玉屏| 郑州市| 麻栗坡县| 长乐市| 云林县| 芜湖市| 新龙县| 岚皋县|