织梦 banner手机浏览

99ANYc3cd6
预计阅读时长 22 分钟
位置: 首页 织梦建站 正文

传统的织梦Banner管理功能比较基础,通常只支持单张图片,且响应式支持不佳,最佳实践是放弃后台自带的Banner功能,采用更现代、更灵活的第三方jQuery轮播图插件

下面我将为你提供一个完整、详细的步骤指南,从准备到最终效果,确保手机端和PC端都能良好显示。


核心思路

  1. 选择合适的轮播图插件:选择一个轻量、功能强大且易于定制的插件,这里我们以 Swiper 为例,它是目前最流行、最优秀的轮播图库之一,对移动端的支持尤其出色。
  2. 准备素材:制作适合PC端和手机端不同尺寸的图片。
  3. 修改模板文件:在首页模板中插入轮播图的HTML结构,并引入Swiper的CSS和JS文件。
  4. 调用数据:使用织梦的标签 {dede:arclist} 从指定栏目中调用文章(或自定义图集模型),作为轮播图的数据源。
  5. 添加CSS样式:编写CSS代码,确保轮播图在不同屏幕尺寸下自适应。
  6. 后台管理:通过在后台发布文章或图集来轻松管理轮播图内容。

详细操作步骤

第一步:准备轮播图素材

为了让轮播图在PC和手机上都有最佳视觉效果,建议准备两套尺寸的图片。

  • PC端图片:建议尺寸 1920px * 500px1920px * 600px
  • 手机端图片:建议尺寸 750px * 400px1080px * 500px

你可以使用Photoshop等工具制作一个主图,然后分别导出PC和手机版,或者,使用一张长图,通过CSS在不同设备上显示不同部分。

第二步:下载并上传Swiper插件

  1. 下载Swiper:访问 Swiper 官网 https://swiperjs.com/,下载最新版本,对于新手,推荐下载 "Swiper with ES modules" 版本,它包含了所有功能。
  2. 解压并上传:将下载的压缩包解压,你会看到 dist 文件夹,我们需要用到里面的 cssjs 子文件夹。
  3. 上传到网站:通过FTP工具,将 dist/css 文件夹内的 swiper.min.cssdist/js 文件夹内的 swiper.min.js 上传到你的织梦模板目录中,可以创建一个 /static/ 文件夹来存放这些公共资源:
    • /templets/你的模板名称/static/css/swiper.min.css
    • /templets/你的模板名称/static/js/swiper.min.js

第三步:修改首页模板文件 (index.htm)

  1. 打开首页模板:登录织梦后台,模板 -> 默认模板管理 -> 选择你的首页模板 index.htm,点击“修改”。

  2. 引入CSS和JS文件:在 <head> 标签内引入Swiper的CSS文件,在页面底部 </body> 标签之前引入Swiper的JS文件。

    <!-- 在 <head> 标签内添加 -->
    <link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/static/css/swiper.min.css">
    <!-- 在 </body> 标签之前添加 -->
    <script src="{dede:global.cfg_templets_skin/}/static/js/swiper.min.js"></script>

    注意:{dede:global.cfg_templets_skin//} 是织梦获取当前模板路径的标签,推荐使用它。

  3. 添加轮播图HTML结构:在首页模板中你希望显示轮播图的位置(通常是顶部),添加以下HTML代码。

    <!-- Swiper -->
    <div class="swiper-container banner-container">
        <div class="swiper-wrapper">
            <!-- 这里将由织梦标签动态填充内容 -->
            {dede:arclist flag='c' typeid='首页栏目ID' row='5'}
            <div class="swiper-slide">
                <!-- 使用[field:litpic/]获取文章缩略图作为轮播图 -->
                <a href="[field:arcurl/]">
                    <img src="[field:litpic/]" alt="[field:title/]">
                </a>
            </div>
            {/dede:arclist}
        </div>
        <!-- 如果需要分页器 -->
        <div class="swiper-pagination"></div>
        <!-- 如果需要导航按钮 -->
        <div class="swiper-button-next"></div>
        <div class="swiper-button-prev"></div>
    </div>

    代码解释

    • flag='c':这是一个自定义属性,我们稍后会用它来标识这些是轮播图文章,你也可以用 typeid 来指定一个专门存放轮播图的栏目。
    • typeid='首页栏目ID':将 '首页栏目ID' 替换为你专门用来存放轮播图文档的栏目ID,这是更推荐的做法,可以和普通文章分开管理。
    • row='5':表示调用5篇文章作为轮播图。
    • [field:litpic/]:调用文章的缩略图,也就是我们的轮播图。
    • [field:arcurl/]:调用文章的链接地址。
    • swiper-slide, swiper-wrapper, swiper-container:这些都是Swiper必需的CSS类名。
    • swiper-pagination:分页器(小圆点)。
    • swiper-button-next/prev:左右切换按钮。

第四步:编写CSS样式

在首页模板的 <head> 部分或外部的CSS文件中,添加以下样式,以实现响应式布局。

/* 在 <head> 标签内添加 <style> 标签 */
<style>
    /* 轮播图容器,设置宽度和高度 */
    .banner-container {
        width: 100%;
        height: 400px; /* PC端高度 */
    }
    /* 轮播图图片,使其撑满容器 */
    .banner-container .swiper-slide img {
        width: 100%;
        height: 100%;
        object-fit: cover; /* 关键属性,让图片填满容器且不变形 */
    }
    /* 手机端适配 */
    @media (max-width: 768px) {
        .banner-container {
            height: 250px; /* 手机端高度 */
        }
    }
</style>

object-fit: cover 是一个非常重要的CSS属性,它能让图片(通常是16:9或4:3)在固定高度的容器中自适应并覆盖整个区域,不会出现留白或拉伸变形的问题。

第五步:初始化Swiper并调用数据

为了让轮播图动起来,我们需要在页面加载完成后初始化它,为了方便管理,我们最好能直接在后台选择哪些文章作为轮播图。

方法A:使用arclistflag属性(简单)

  1. 在后台发布文章时,在“高级选项” -> “自定义属性” 中,勾选 推荐,这样 flag='c' 就会调用所有被设为“推荐”的文章。

  2. 在首页模板的底部,</body> 标签之前,添加以下JavaScript代码来初始化Swiper:

    <script>
        document.addEventListener('DOMContentLoaded', function () {
            // 初始化Swiper
            new Swiper('.banner-container', {
                loop: true, // 循环模式选项
                autoplay: {
                    delay: 3000, // 自动切换的时间间隔,单位ms
                    disableOnInteraction: false, // 用户操作swiper之后,是否禁止autoplay
                },
                pagination: {
                    el: '.swiper-pagination',
                    clickable: true, // 分页器可以点击
                },
                navigation: {
                    nextEl: '.swiper-button-next',
                    prevEl: '.swiper-button-prev',
                },
                // 响应式设置
                breakpoints: {
                    // 当宽度小于等于768px时
                    768: {
                        slidesPerView: 1, // 每页显示1个
                        spaceBetween: 10, // 间距
                        // 在小屏幕上隐藏导航按钮
                        navigation: {
                            nextEl: '.swiper-button-next',
                            prevEl: '.swiper-button-prev',
                            hideOnClick: true,
                        }
                    }
                }
            });
        });
    </script>

方法B:使用channel标签调用指定栏目(推荐)

  1. 在后台创建一个新栏目,网站首页Banner”,设置好栏目模板(可以为空)。
  2. 将第三步中的 {dede:arclist flag='c' ...} 修改为:
    {dede:channelartlist typeid='首页栏目ID'}
        {dede:arclist row='5'}
            <div class="swiper-slide">
                <a href="[field:arcurl/]">
                    <img src="[field:litpic/]" alt="[field:title/]">
                </a>
            </div>
        {/dede:arclist}
    {/dede:channelartlist}

    这种方式更清晰,所有轮播图内容都集中在指定栏目下管理。

第六步:后台管理与最终效果

  1. 清空缓存:在织梦后台,点击 “生成” -> “一键更新网站” -> “更新HTML”,更新首页。
  2. 检查效果
    • 在电脑上访问你的网站首页,查看轮播图是否正常播放、切换、显示分页器。
    • 使用浏览器的“开发者工具”(按F12),切换到手机模拟模式(如 iPhone 12, Android等),检查轮播图的高度、图片是否自适应,触摸滑动是否正常。

至此,一个完美适配手机浏览的织梦Banner就制作完成了。


总结与建议

  • 插件为王:对于复杂的交互效果如轮播图,强烈建议使用成熟的第三方插件,而不是自己用JS写,这能节省大量时间并保证兼容性。
  • 响应式图片:为PC和手机准备不同尺寸的图片是最佳实践,能保证各端都有最佳视觉体验。
  • 后台管理:通过指定栏目来管理轮播图内容是最清晰、最方便的方式,避免了在文章自定义属性中设置的混乱。
  • 性能优化:图片是网站加载速度的关键,请确保你的轮播图图片已经过压缩,不会导致首页加载过慢。

按照以上步骤,你就可以轻松地在织梦网站中实现一个专业、美观且对手机端友好的Banner效果。

-- 展开阅读全文 --
头像
c语言 fgets stdin
« 上一篇 01-01
block copy c 语言
下一篇 » 01-01

相关文章

取消
微信二维码
支付宝二维码

目录[+]