返回文章列表文章索引阅读全文
STARBLOG / 阅读手记
StarBlog博客开发笔记

StarBlog博客开发笔记(10):图片展示-瀑布流-首页卡片

系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetCore开发博客项目 StarBlog - (3) 模型设计 基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入 基于.NetCore开发博客项目 StarBl

曦远 (DealiAxy)约 9 分钟
目录8 个章节

系列文章

前言

上一篇介绍了图片批量导入操作,我看到有同学留言问怎么没有上传图片的介绍,这里再解释一下,本系列文章介绍的顺序是:

  • 从 博客的网站前台 到 管理后台
  • 从 后端C#代码 到 前端Vue+ElementUI

所以上传图片这部分会在后续的管理后台开发中介绍,欢迎继续关注哈~

接着上篇文章,继续介绍摄影模块,图片导入之后,需要做展示,本文介绍~~(水)~~图片瀑布流的实现。

PS:涉及到的技术很简单,所以本文会比较水一点,请大佬们跳过吧~

先看效果

导入一些爬虫采集的壁纸作为测试数据,先看看瀑布流效果

image-20220531172713259

管理后台的瀑布流

image-20220531173419389

这是首页卡片效果

image-20220531173217659

实现

瀑布流原理很简单,有一堆现成的轮子可以用,那就不造轮子了~~(直接CV操作)~~哈哈哈

前台

博客前台的这个瀑布流我选的是masonry-layout,项目主页:https://github.com/desandro/masonry

选这个组件的原因是我看到Bootstrap5的例子代码里用了这个实现瀑布流,那我就copy过来了(逃

使用方法很简单

<div class="row" data-masonry='{"percentPosition": true }'>
    @foreach (var photo in Model.Photos) {
    <div class="col-sm-6 col-lg-4 mb-4">
        <partial name="Widgets/PhotoCard" model="photo"/>
    </div>
    }
</div>

有很多option可以配置,我没深入研究

它的github主页也没怎么介绍,文档都在官网里:https://masonry.desandro.com/

这个官网的风格也是别具一格(逃

后台

管理后台的瀑布流是用vue-waterfall组件实现的,具体在后续的文章里会介绍~

最后首页这几个卡片也是我在Bootstrap5的例子里参考魔改来的

代码如下

@model Photo

<div class="card card-cover h-100 overflow-hidden text-white bg-dark rounded-5 shadow-lg"
     style="background-image: url('media/@Model.FilePath.Replace("\\", "/")');">
    <div class="d-flex flex-column h-100 p-5 pb-3 text-white text-shadow-1">
        <h2 class="pt-5 mt-5 mb-5 display-6 lh-1 fw-bold">
            @Model.Title
            <p></p>
        </h2>
        <ul class="d-flex list-unstyled mt-auto">
            <li class="me-auto">
                <img src="~/images/star.jpg" alt="Bootstrap" width="32" height="32" class="rounded-circle border border-white">
            </li>
            <li class="d-flex align-items-center me-3">
                <span class="bi me-2">
                    <i class="fa-solid fa-location-pin"></i>
                </span>
                <small>@Model.Location</small>
            </li>
            <li class="d-flex align-items-center">
                <span class="bi me-2">
                    <i class="fa-solid fa-calendar-days"></i>
                </span>
                <small>@Model.CreateTime.ToShortDateString()</small>
            </li>
        </ul>
    </div>
</div>

搞定~

进阶

前台使用 masonry + infinite-scroll 实现下拉加载

必须使用 imagesLoaded 库,实现图片加载后的事件,官网: https://imagesloaded.desandro.com/

最后

今天刚好是六一儿童节,路上看到很多小朋友都出来玩了,很棒,祝各位大朋友小朋友天天开心~

_EOF_

StarBlog博客开发笔记(10):图片展示-瀑布流-首页卡片

本文作者:
程序设计实验室
版权声明:
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章

StarBlog博客开发笔记(26):集成Swagger接口文档

前言 这是StarBlog系列在2023年的第一篇更新😃~ 在之前的文章里,我们已经完成了部分接口的开发,接下来需要使用 curl、Postman 这类工具对这些接口进行测试,但接口一多,每次测试都要一个个填入地址和对应参数会比较麻烦… 我们需要一种直观的方式来汇总项目里的所有接口,并且如果能直接在里面调试接口,那就更好了。 Swagger:诶嘿,说的不就是我吗?😎 Swagger介绍 来一段

2023-03-11 · StarBlog博客开发笔记 · 约 1 分钟

StarBlog博客开发笔记(23):文章列表接口分页、过滤、搜索、排序

前言 上一篇留的坑,火速补上。 在之前的第6篇中,已经有初步介绍,本文做一些补充,已经搞定这部分的同学可以快速跳过,基于.NetCore开发博客项目 StarBlog - (6) 页面开发之博客文章列表 对标准的WebApi来说,分页、过滤、搜索、排序是很常见的功能,既可以方便用户查看数据,又可以提升程序性能。 通用请求参数 定义一个类来作为通用的请求参数 列表接口通用的参数是这几个:PageSi

2023-01-02 · StarBlog博客开发笔记 · 约 1 分钟

讨论

共 0 条

良言一句三冬暖,恶语伤人六月寒。

加载评论中…