当前位置: 首页 > article >正文

项目实战:基于Vue3实现一个小相册

                                相册的示例效果图

注意看注释...

  CSS部分:

<style>
        /* 伪元素选择器,用于在具有clear_ele类的元素内部的末尾添加一个新的元素 */
        .clear_ele::after{  
            content: "";  /* 这个伪元素的内容属性必须有 */
            /* 块级元素,便于占据一行空间 */
            display: block;
            clear: both;    /* 清除浮动 */
        }

        .box{
            margin-bottom: 20px;
            padding: 0;
        }

        .button{
            background-color: bisque;
            width: 20px;
            float: left;  
            text-align: center;  /* 使文本内容居中 */
            margin-right: 10px;
            border-radius: 8px;  /* 给按钮添加圆角 */
            cursor: pointer;  
        }

        .img{
            width: 480px;  
            height: 240px;
            border: 1px bisque solid;
        }
    </style>

HTML部分: 

        按照示例图做出一个简单的框架。利用v-bind绑定图片的路径,使得图片路径可以自动更新。通过v-on(@)为切换相片的按钮绑定一个函数,这个函数负责更改图片路径。

    <div id="app">
         <!--  利用插值运算符显示img.number --> 
        <h2>基于Vue3实现的相册:展示第{{ img.number }}张相片</h2>

        <!--  <img>标签通过v-bind绑定了图片的地址为img.url。 -->        
        <img v-bind:src="img.url"   class="img"> 
        <ul type="none" class="clear_ele box">
            <!-- 列表通过v-for指令生成4个li元素,通过v-on绑定,
            点击button时调用jump函数,并且显示val的值 -->
            <li v-for="(val, idx) in 4"  @click="jump(val)" class="button"> {{val}} </li>
        </ul>
        <!-- 通过@click绑定prev和next函数,用于切换上一张和下一张图片 -->
        <button @click="prev">上一张</button>     <button @click="next">下一张</button>
    </div>

JavaScript部分(Vue相关):

        把图片路径存储在响应式数据里,当这个响应式数据改变时,html的图片路径就会自动改变。

    <script type="module">
        // 通过import语句导入createApp,  ref,  reactive
        import { createApp,  ref,  reactive } from './vue.esm-browser.js'

        createApp({
            setup() {

                // 【定义数据】
                // 通过reactive函数创建一个响应式对象img,并设置图片的属性
                const img = reactive(
                    {
                        number: 1,    // 图片的序号
                        url: "./img_src/logo1.png"    // 图片的源地址
                    }
                )

                // 【定义函数】
                //上一张
                const prev = () => {
                    img.number--
                    // 当图片序号为0时,切换到第4张图片
                    if (img.number == 0) {
                        img.number = 4
                    }
                    img.url = `./img_src/logo${img.number}.png`                 
                }                
                //下一张
                const next = () => {
                    img.number++
                    // 当图片序号为5时,切换到第1张图片
                    if (img.number == 5) {
                        img.number = 1
                    }
                    img.url = `./img_src/logo${img.number}.png`
                }
                //跳转
                //根据传入的val值跳转到相应的图片
                const jump = (val) => {
                    img.number = val
                    img.url = `./img_src/logo${img.number}.png`
                }
                //记得每一个对象和方法都要暴露出来
                return {img, prev,next,jump}
            }
        }).mount("#app")
    </script>


http://www.kler.cn/a/407194.html

相关文章:

  • 跨境出海安全:如何防止PayPal账户被风控?
  • 利用FileZilla搭建ftp服务器
  • Mysql的UPDATE(更新数据)详解
  • c# npoi操作excel
  • PDF内容提取,MinerU使用
  • Kubernetes的pod控制器
  • mips架构下编译nginx-rtmp
  • 分类算法——基于heart数据集实现
  • 读取mysql、kafka数据筛选后放入mysql
  • 纯前端js完成游戏吃豆人
  • Rust 力扣 - 746. 使用最小花费爬楼梯
  • redis的大key和热key问题解决方案
  • 数据结构--B树
  • 电机绕组短路故障如何维修?
  • 常见面试题----深入源码理解MQ长轮询优化机制
  • 电脑系统重装小白教程
  • 开源宝藏:Smart-Admin 重复提交防护的 AOP 切面实现详解
  • 编程之路,从0开始:文件操作(1)
  • 如何在Python中进行数学建模?
  • python c++ opencv打开图片路径写法
  • RK356x-10:串口(uart)配置与调试
  • 多算法模型(BI-LSTM GRU Mamba ekan xgboost)实现功率预测
  • ubuntu安装Eclipse
  • 如何在React中服务器操作提交表单后(不)重置表单?
  • Next.js 独立开发教程(三):CSS 样式的完整指南
  • OpenHands:开源AI编程工具的新贵,让编程更自然