更新记录

1.4(2023-12-07)

更新文档

1.3(2023-12-07)

优化代码解除限制更新说明

1.2(2023-11-24)

更新说明,更新数据后组件重置操作

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × ×

介绍

仿热门社交软件探探首页图片左右滑动,纯代码不依赖任何插件单组件代码才10多KB,流畅不卡顿。

简单案例

<template>
  <view>
    <tantan 
        v-if="list.length > 0"  
        :list="list"
        :visible="visible"
        @="change" 
        @onClickImage="clickImage"
    ></tantan>
  </view>
</template>

<script>
import tantan from '@/components/dgex-tantan/dgex-tantan.vue'
export default {
  components: {
    tantan
  },
  data() {
    return {
        list: [],
        visible: 5
    }
  },
  mounted() {
    this.list = this.testData()
  },
  methods: {
    change(data) {
            console.log(data);
    },
    clickImage(data) {
            console.log(data);
    },
    testData() {
        const arr = []
        /* 测试数据*/
        const tu = [
            "https://pic1.zhimg.com/50/v2-fc82ae5d95b116d105932e8bdf38b920_720w.jpg?source=2c26e567",
            "https://picx.zhimg.com/50/v2-2ff9dc184a4fa00fa1e0c493013d8d13_720w.jpg?source=2c26e567",
            "https://picx.zhimg.com/50/v2-a4b356c00dfc7c92c5b69d533e99aa8f_720w.jpg?source=2c26e567",
            "https://picx.zhimg.com/50/v2-ad949fa892116bd98fa02968fb517dd5_720w.jpg?source=2c26e567",
            "https://picx.zhimg.com/50/v2-94d1226578c67f8f25893b5972acaa43_720w.jpg?source=2c26e567",
            'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0704%2Fc7a27a1ej00qvpu700019c000hs00vlc.jpg&thumbnail=660x2147483647&quality=80&type=jpg',
            'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0704%2F9f81e6aaj00qvpu70001xc000hs00vmc.jpg&thumbnail=660x2147483647&quality=80&type=jpg',
            'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0704%2F55bf2cb3j00qvpu70002cc000hs012jc.jpg&thumbnail=660x2147483647&quality=80&type=jpg',
            'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F0704%2F2017725bj00qvpu70001jc000hs00zxc.jpg&thumbnail=660x2147483647&quality=80&type=jpg'
        ]
        for (let index = 0; index < 5; index++) {
          const n = Math.floor(Math.random() * (tu.length - 1))
          const randomNumber = Math.floor(Math.random() * 100);
          let data = {
            image: tu[n],
            title: '探探',
            desc: `${n}${randomNumber / 2}m${randomNumber}分钟前活跃`,
            tags: ['射手座']
          }
          arr.push(data)
        }
        return arr
    }
  }
}
</script>

参数

Props

参数名 参数类型 是否必填 默认值 描述
list Array [] 数据列表
visible Number 5 展示几个

Props list说明

参数名 参数类型 是否必填 默认值 描述
image String 图片地址
title String 标题
desc String 描述
tags Array 标签

Events

参数名 说明 返回值类型 返回值格式
@on Change 滑走哪一个 Object {currentIndex: 0, // 当前下标 currentItem: {}, // 当前数据}
@on ClickImage 当前图片点击 Object {currentIndex: 0, // 当前下标 currentItem: {}, // 当前数据}

更新/追加数据的特别说明

// 在@中处理
...
change(data) {
    // 判断倒数
    // 情况一 如果是追加数据,合并数组即可
    if (data.currentIndex > this.list.length - 5) {
        this.list = this.list.concat(this.testData())
    }
    // or
    // 情况二 如果是更新数据需要同时重置组件,使用v-if重置组件 重置会闪屏自行处理加个动画
    this.list = []
    this.$nextTick(() => {
        this.list = this.testData()
    })
}

IOS上下滑动回弹效果影响

// 关闭效果
"pages": [
    {
        "path": "pages/index/index",
        "style": {
            "navigationBarTitleText": "uni-app",
            // 将回弹属性关掉
            "bounce":"none"
        }
    }
]

一些其它

  • Web仿App动画性能上还是有点鸡肋
  • 如有其他问题,请在下方留言
  • 反馈问题留言或复现步骤录屏同代码发送到910547462@qq.com

点赞

  • 喜欢该功能欢迎到gitee点Star~,后续会更新其他功能

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问