vue--制作随意滑动的相册

✍ 如何做成**⇩这种效果呢🤔?**

㊀首先😐

没有任何装饰的源代码:

javascript 复制代码
  <style>

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

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

<body>
    <div id="app">

        <h2>基于Vue3实现的相册:展示第xx张相片</h2>
        
        <img src = "./img_src/logo1.png" class="img" alt="图片加载失败"> 

        <ul type="none" class="box"></ul>
   
        
        <button>上一张</button>   <button>下一张</button>

    </div>

    <script type="module">
        import { createApp, ref } from './vue.esm-browser.js'

        // 【实现思路】
        // 1. 利用v-on为切换相片的按钮绑定上一个函数,这个函数负责更改图片路径
        // 2. 利用v-bind绑定图片的路径,使得图片路径可以自动更新

    </script>
</body>

</html>

++【实现思路】😍++

  1. 利用v-on为切换相片的按钮绑定上一个函数,这个函数负责更改图片路径

  2. 利用v-bind绑定图片的路径,使得图片路径可以自动更新

javascript 复制代码
  <div id="app">
        <h2>基于Vue3实现的相册:展示第{{ img.number }}张相片</h2>
        
        <img v-bind:src="img.url"   class="img"> <br>
        <button v-on:click="prev">上一张</button> 
        <button v-on:click="next">下一张</button>
    </div>

㊁ 定义数据😉:

javascript 复制代码
  const img = reactive(
                    {
                      
                        number: 1,
                        url: "./img_src/logo1.png"
                    }
                )

㊂ 定义函数😊:

javascript 复制代码
 //控制上一张
                const prev = () => {
                    img.number=img.number-1
                    if (img.number == 0) {
                        img.number = 8
                    }
                    img.url = `./img_src/logo${img.number}.png`                 
                }                
                //控制下一张
                const next = () => {
                    img.number=img.number+1
                    if (img.number > 8) {
                        img.number = 1
                    }
                    img.url = `./img_src/logo${img.number}.png`
                }

🚨注:改变照片的路径,实现照片的转换

img.url = `./img_src/logo${img.number}.png`

㊃ 实现照片跳转并返回函数😮:

javascript 复制代码
 const jump = (val) => {
                    img.number = val
                    img.url = `./img_src/logo${img.number}.png`
                }
                return {img, prev,next,jump}
            }
        }).mount("#app")
    </script>

🚨注:一定要记得返回函数哦负责将无法显示

😇完整代码**⇩**:

javascript 复制代码
<title>相册-参考实现</title>

    <style>
        .clear_ele::after{
            content: "";  /* 这个伪元素的内容属性必须有 */
            display: block;
            clear: both;
        }

        .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;
        }

        .box{
            margin-bottom: 20px;
            padding: 0;
        }
    </style>
</head>

<body>
    <div id="app">
        <h2>基于Vue3实现的相册:展示第{{ img.number }}张相片</h2>
        
        <img v-bind:src="img.url"   class="img"> <br>
        <button v-on:click="prev">上一张</button> 
        <button v-on:click="next">下一张</button>
    </div>

    <script type="module">
        import { createApp,  ref,  reactive } from './vue.esm-browser.js'

        createApp({
            setup() {

                // 【定义数据】
                const img = reactive(
                    {
                      
                        number: 1,
                        url: "./img_src/logo1.png"
                    }
                )

                // 【定义函数】
                //上一张
                const prev = () => {
                    img.number=img.number-1
                    if (img.number == 0) {
                        img.number = 8
                    }
                    img.url = `./img_src/logo${img.number}.png`                 
                }                
                //下一张
                const next = () => {
                    img.number=img.number+1
                    if (img.number > 8) {
                        img.number = 1
                    }
                    img.url = `./img_src/logo${img.number}.png`
                }
                //跳转
                const jump = (val) => {
                    img.number = val
                    img.url = `./img_src/logo${img.number}.png`
                }
                return {img, prev,next,jump}
            }
        }).mount("#app")
    </script>
</body>

</html>
相关推荐
晴空万里藏片云18 分钟前
elment Table多级表头固定列后,合计行错位显示问题解决
前端·javascript·vue.js
曦月合一19 分钟前
html中iframe标签 隐藏滚动条
前端·html·iframe
奶球不是球20 分钟前
el-button按钮的loading状态设置
前端·javascript
kidding72324 分钟前
前端VUE3的面试题
前端·typescript·compositionapi·fragment·teleport·suspense
无责任此方_修行中2 小时前
每周见闻分享:杂谈AI取代程序员
javascript·资讯
Σίσυφος19002 小时前
halcon 条形码、二维码识别、opencv识别
前端·数据库
学代码的小前端2 小时前
0基础学前端-----CSS DAY13
前端·css
dorabighead3 小时前
JavaScript 高级程序设计 读书笔记(第三章)
开发语言·javascript·ecmascript
css趣多多4 小时前
案例自定义tabBar
前端
姑苏洛言5 小时前
DeepSeek写微信转盘小程序需求文档,这不比产品经理强?
前端