publiccms实现多层级选项卡效果

本文涉及的产品
语种识别,语种识别 100万字符
图片翻译,图片翻译 100张
文本翻译,文本翻译 100万字符
简介: publiccms实现多层级选项卡效果

前言

距离上次更新已经好久了~最近心有余而力不足。。

最近在学习freammarker标签,算是比较老的技术了,白天写,晚上做梦都在写,不吐槽了,反正就是真难用啊,语法还复杂。。

刚刚实现了个多级选项卡的效果,框架使用的是publiccms,不得不说,这个publiccms刚开始用的时候,让你有一万种放弃他的理由,为什么?因为太灵活了,灵活的有点乱了都。不过当你用熟练了之后,发现这个玩意还是挺好用的,既方便又省事,唯一一点不足的就是,内部标签使用的是freammarker……

效果吐下:

实现思路

本来我想用页面片段的方式来实现,后来想了想,页面片段实现的话不灵活,不方便后期维护,但是暂时页面片段是用的最熟练的,换别的方式势必会费脑子不说,还有可能耽误后面的进度,得现学现研究,思虑再三,决定还是!!!

想要进步,就不能驻足不前,永远都停留在现在的阶段上。

最后决定用分类来实现,将核心企业、股东单位、参股企业以及协作企业都写成可维护的分类,下面的华为、京东等写成内容,这样遍历分类和该分类下的内容即可,后期维护也比较省事。

创建分类

image-20211229194220023

在每个分类下新建该分类的内容,如下所示:

image-20211229194312106

实现代码

最后修改前台代码:(注释只有自己明白……)

  
   <@_categoryList parentId=3>
                             <#assign counts=0> 
                                 <#list page.list as cate>
                <!-- 遍历分类下的内容 -->
  <div class="content" id="home${counts}" style="margin-top: 50px;">
                                <div class="xiangmu" style="width: 100%;margin-bottom: 50px;max-height: 900px;">
                                    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 mt-tabpage" js-tab="3"
                                        style="padding: 0;">

                                        <!-- 最上面的三个图片(京东、京东方、华为) -->
                                        <div class="mt-tabpage-title">
                                            <@_contentList categoryId=cate.id   pageSize=3>
                                    <#list page.list as b>
                                            <span
                                                class="col-lg-3 col-md-3 col-sm-3 col-xs-3 mt-tabpage-item mt-tabpage-item-cur tabSpan"
                                                style="height: 94px;border: 1px solid #F5F5F5;">
                                                <img src="${b.cover!}">
                                            </span>
                                            </#list>
                                    </@_contentList>
                                            <span class="mt-tabpage-item" style="display: none;"></span>
                                        </div>
                                        <div class="mt-tabpage-count">
                                            <ul class="mt-tabpage-cont__wrap">

                                                <!-- 京东的介绍 -->

                                                 <@_contentList categoryId=cate.id   pageSize=3>
                                    <#list page.list as b>
                                                <li class="mt-tabpage-item">
                                                    <div class="col-lg-12 col-md-7 col-sm-6 col-xs-5 gtr"
                                                        style="padding:0px 50px 0px 20px;">
                                                        ${(getContentAttribute(b.id).text?no_esc)!}
                                                    <div class="col-lg-0 col-md-0 col-sm-0 col-xs-3"
                                                        style="padding: 0;opacity: 0;">0</div>
                                                </li>

                                                </#list>
                                    </@_contentList>

                                                <li class="mt-tabpage-item"></li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
         
<span></span>
 <#assign counts=counts+1> 
                                </#list>
                            </@_categoryList>
                           
                        </@_categoryList>
                            

好了,麻烦的地方就是fremmarker语法,其他的都还行。

目录
相关文章
打造网页中的树型菜单
打造网页中的树型菜单
|
8月前
publiccms实现多层级选项卡效果
publiccms实现多层级选项卡效果
|
Android开发 索引 iOS开发
第二十四章:页面导航(十七)
像现实生活中的应用程序理想情况下,用户在终止并重新启动应用程序时不应该知道。应用程序体验应该是连续且无缝的。即使程序没有一直运行,一个半月进入的条目从未完成也应该在一周后处于相同的状态。NoteTaker程序允许用户记录由标题和一些文本组成的注释。
548 0
|
JavaScript 前端开发 Android开发
第二十四章:页面导航(十六)
保存和恢复导航堆栈 许多多页面应用程序的页面体系结构比DataTransfer6更复杂,您需要一种通用的方法来保存和恢复整个导航堆栈。此外,您可能希望将导航堆栈的保存与系统方式集成,以保存和恢复每个页面的状态,特别是如果您不使用MVVM。
501 0
|
XML JSON Android开发
第二十四章:页面导航(十五)
保存和恢复页面状态特别是当您开始使用多页面应用程序时,将应用程序的页面视为数据的主要存储库非常有用,而仅仅是作为底层数据的临时可视化和交互式视图。这里的关键词是暂时的。如果您在用户与之交互时保持基础数据是最新的,那么页面可以显示和消失而不必担心。
658 0
|
JavaScript Android开发
第二十四章:页面导航(十四)
切换到ViewModel此时应该很明显,Information类应该真正实现INotifyPropertyChanged。 在DataTransfer5中,Information类已成为InformationViewModel类。
607 0
|
Android开发 索引
第二十四章:页面导航(十一)
消息中心您可能不喜欢两个页面类直接相互调用方法的想法。 它似乎适用于小样本,但对于具有大量类间通信的大型程序,您可能更喜欢一些不需要实际页面实例的更灵活的东西。这样的工具是Xamarin.Forms MessagingCenter类。
560 0
|
JavaScript Android开发 索引
第二十四章:页面导航(十)
属性和方法调用调用PushAsync或PushModalAsync的页面显然可以直接访问它导航到的类,因此它可以设置属性或调用该页面对象中的方法以将信息传递给它。但是,调用PopAsync或PopModalAsync的页面还有一些工作要做,以确定它返回的页面。
558 0
|
JavaScript Android开发
第二十四章:页面导航(九)
数据传输模式 多页面应用程序中的页面通常需要共享数据,特别是一页面将信息传递到另一页面。 有时此过程类似于函数调用:当HomePage显示项目列表并导航到DetailPage以显示其中一个项目的详细视图时,HomePage必须将该特定项目传递给DetailPage。
639 0
|
Android开发
第二十四章:页面导航(八)
动态页面生成BuildAPage程序是一个多页面应用程序,但BuildAPage项目只包含一个名为BuildAPageHomePage的页面类。 顾名思义,该程序从代码构造一个新页面,然后导航到它。XAML文件允许您在此构造的页面上指定所需内容: <ContentPage xmlns="http://xamarin.
677 0