IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 列表数据滚动曝光埋点和点击埋点 -> 正文阅读

[Python知识库]列表数据滚动曝光埋点和点击埋点

使用的IntersectionObserver API

<template>
  <div class="job_list" v-if="showList.length > 0">
    <div class="title">列表title</div>
    <van-list
      v-model="loading"
      :finished="finished"
      finished-text="我们是有底线的~"
      loading-text="内容加载中"
      :error.sync="error"
      error-text="请求失败,点击重新加载"
      offset="160"
      @load="getList"
      v-if="showList.length > 0"
    >
      <ListCard
        v-for="(item, index) in showList"
        :key="index + 'likejobList'"
        :listItem="item"
        textType="corporateName"
        class="job_list_card"
        :data-jobid="item.jobId"
        :data-ojobid="oJobId"
        :data-impid="item.point.impid"
        :data-transinfo="JSON.stringify(item.point.algoMeta.transInfo)"
        @click.native="clickCard(oJobId, item.jobId, item.point.impid, item.point.algoMeta.transInfo)"
      ></ListCard>
    </van-list>
  </div>
</template>

<script>
import ListCard from './ListCard.vue'
import { List } from 'vant'
import { likeListDsLog, clickLikeListDsLog } from '../api/dslogList'
export default {
  name: 'likeList',
  components: {
    ListCard,
    [List.name]: List,
  },
  props: {
    companyList: {
      type: Array,
    },
    jobId: {
      type: [Number,String]
    }
  },
  watch: {
    companyList: {
      handler(newVal) {
        this.allList = newVal
        this.getList('now')
      },
      immediate: true,
      deep: true,
    },
    jobId: {
      handler(newVal) {
        this.oJobId = newVal
      },
      immediate: true,
    }
  },
  data() {
    return {
      oJobId: '',
      allList: [],
      showList: [],
      // 列表
      loading: false,
      finished: false,
      error: false,
      size: 5,
      target: 0,
    }
  },
  methods: {
    getList(tag) {
      let allarr = JSON.parse(JSON.stringify(this.allList))
      let arr = this.showList
      if(tag && allarr.length < 5 && allarr.length != 0){
        this.showList = allarr
        this.loading = false
        this.finished = true
        // 埋点-列表曝光
        this.initElementSensor()
        return
      }
      if (tag) {
        arr = arr.concat(
          allarr.slice(this.target * this.size, (this.target + 1) * this.size)
        )
        this.showList = arr
        this.loading = false
        this.target++
        if (arr.length >= this.allList.length || arr.length >= 20) {
          this.finished = true
        }
        // 埋点-列表曝光
        this.initElementSensor()
        return
      }
      setTimeout(() => {
        arr = arr.concat(
          allarr.slice(this.target * this.size, (this.target + 1) * this.size)
        )
        this.showList = arr
        this.loading = false
        this.target++
        if (arr.length >= this.allList.length || arr.length >= 20) {
          this.finished = true
        }
      }, 1000)
    },
    clickCard(jobid, ojobid, impid, transinfo){
      clickLikeListDsLog(jobid, ojobid, impid, transinfo)
    },
    // 列表曝光
    initElementSensor () {
      this.$nextTick(() => {
        const obserRef = new IntersectionObserver((entries) => {
          entries.forEach((v) => {
            const {jobid, ojobid, impid, transinfo} = v.target.dataset;//自定义
            if (v.isIntersecting) {
              //v.isIntersecting=true的时候表示露出
              likeListDsLog(jobid, ojobid, impid, transinfo)
            }
          });
        },{
          threshold: [1]
        });
        setTimeout(() => {
          const items = document.querySelectorAll(".job_list_card") || [];
          items.forEach((item) => {
            obserRef.observe(item);
          });
        }, 0);
      });
    },
  },
}
</script>

<style lang="scss" scoped>
.job_list {
  background-color: #ffffff;
  overflow: hidden;
  .title {
    font-size: 18px;
    font-weight: bold;
    color: #333333;
    padding: 20px 0 0 16px;
  }
}
</style>

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:38:10  更:2021-09-22 14:39:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:51:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码