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>
相关推荐
一叶星殇2 分钟前
C# .NET 如何解决跨域(CORS)
开发语言·前端·c#·.net
RunsenLIu4 分钟前
基于Spring Boot + Vue的图书馆座位预约管理系统
vue.js·spring boot·后端
运筹vivo@4 分钟前
攻防世界: catcat-new
前端·web安全·php
阿雄不会写代码8 分钟前
Let‘s Encrypt HTTPS 证书配置指南
前端·chrome
每天吃饭的羊22 分钟前
hash结构
开发语言·前端·javascript
吃吃喝喝小朋友24 分钟前
JavaScript异步编程
前端·javascript
Trae1ounG1 小时前
Vue生命周期
前端·javascript·vue.js
—Qeyser1 小时前
Flutter Text 文本组件完全指南
开发语言·javascript·flutter
程序员小李白1 小时前
js数据类型详细解析
前端·javascript·vue.js