Vue.Swiper使用

原生JavaScript使用Swiper

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./lib/swiper/css/swiper.css">
    <script src="./lib/swiper/js/swiper.js"></script>
    <style>
        .swiper-slide {
            width: 400px;
            height: 300px;
        }
    </style>
</head>
<body>    
    <div class="swiper-container">
        <div class="swiper-wrapper">
            <!-- 通过js创建dom节点      -->
        </div>
         <!-- 如果需要分页器 -->
        <div class="swiper-pagination"></div>      
    </div>

    <script>  
        // 模拟ajax异步请求
        setTimeout(()=>{
            // 接收的请求数据
            let list = ["111", "222", "3333"]
            // 创建dom节点
            let newList = list.map((item)=>`<div class="swiper-slide">${item}</div>`)
            document.querySelector(".swiper-wrapper").innerHTML = newList.join("")

            // 初始化Swiper
            new Swiper ('.swiper-container', {
                loop: true, // 循环模式选项
                // direction: 'vertical', // 垂直切换选项
                // 如果需要分页器
                pagination: {
                el: '.swiper-pagination',
                },
                // 自动轮播
                autoplay: {
                    delay: 2500,
                    disableOnInteraction: false,
                },
            })
        })
        
               
        </script>  
</body>
</html>

Vue中使用Swiper+axios获取数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./lib/swiper/css/swiper.css">
    <script src="./lib/swiper/js/swiper.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
</head>
<body>
    <script src="./lib/vue.js"></script>
    <div id="app">
        <!-- key值开始是零 swiper初始化是没用的 -->
        <!-- 数据变化后 key不一样 算法就会重新创建新的swiper -->
        <Swiper :key="dataList.length">
            <div class="swiper-slide" v-for="data of dataList">
                <img :src="datalist.imgUrl" alt="" srcset="">
            </div>
        </Swiper>
    </div> 
    
    <script>
        Vue.component("Swiper",{
            template: `
            <div class="swiper-container">
                <div class="swiper-wrapper">
                    <slot></slot>
                </div>
                <!-- 如果需要分页器 -->
                <div class="swiper-pagination"></div>
                
                <!-- 如果需要导航按钮 -->
                <div class="swiper-button-prev"></div>
                <div class="swiper-button-next"></div>
                
                <!-- 如果需要滚动条 -->
                <div class="swiper-scrollbar"></div>
            </div>
            `,
            mounted() {
                // 初始化Swiper
                new Swiper ('.swiper-container', {
                    loop: true, // 循环模式选项
                    // direction: 'vertical', // 垂直切换选项
                    // 如果需要分页器
                    pagination: {
                    el: '.swiper-pagination',
                    },
                    // 自动轮播
                    autoplay: {
                        delay: 2500,
                            disableOnInteraction: false,
                    },
                })
            },
        })



        new Vue({
            el: "#app",
            data:{
                dataList: []
            },
            mounted() {
                // 异步获取数据
                axios({
                    url:"https://m.maizuo.com/gateway?type=2&cityId=110100&k=97815",
                    headers:{
                        'X-Client-Info': '{"a":"3000","ch":"1002","v":"5.0.4","e":"154277371928424093566579"}',
                        'X-Host': 'mall.cfg.common-banner'
                    }
                }).then(res=>{
                    console.log(res.data);
                    this.datalist= res.data.data
                }) 
            },
            
        })

        

    </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 当我们在vue项目中使用轮播图插件swiper时,直接引入swiper需要消耗大量资源vue-swiper是swi...
    LYX_Rain阅读 6,525评论 1 2
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 3,153评论 1 4
  • 要招一个会vue的开发者: 作为面试官的你,你还会每次都只是问这些老土的问题吗?你对MVVM的理解是什么?你知道什...
    浪子神剑阅读 23,280评论 0 260
  • 青春年少时 我们享受着 青葱岁月带给我们的一切 天空的蓝 草地的绿 稻田的花香 环滇路上的欢声笑语 大学校园树荫下...
    美臣姜阅读 365评论 0 3
  • 我拿驾驶证快10年了,但真正开车时间加起来不知道有没有一个月,里程就更不用提了。原来总觉得害怕,一拿着方向盘,整个...
    陈华洁阅读 448评论 3 2

友情链接更多精彩内容