最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)列表無縫滾動

 更新時間:2021年06月28日 10:38:45   作者:tall羊  
這篇文章主要為大家詳細介紹了vue實現(xiàn)列表無縫滾動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現(xiàn)列表無縫滾動的具體代碼,供大家參考,具體內(nèi)容如下

HTML部分代碼

<template>
  <div id="box" class="wrapper">
    <div class="contain" id="con1" ref="con1" :class="{anim:animate==true}">
      <List
        v-for="(item,index) in cloudList"
        :key="index"
        :listData="item"
        :index="index"
        :date="date"
      ></List>
    </div>
  </div>
</template>

List是單個列表組件,也可以替換成li。

css部分代碼

<style scoped>
.wrapper {
  width: 96vw;
  height: 90vh;
  position: absolute;
  left: 2vw;
  top: 1rem;
  overflow: hidden;
}
.contain > div:nth-child(2n) {//這個樣式是我這個項目所需,與無縫滾動無直接關(guān)系,可以忽略
  margin-left: 2vw;
}
.anim {
  transition: all 0.5s;
  margin-top: -7vh;
}
</style>

我的List組件是設(shè)置了float:left的,所以id="con1"的div是沒有高度的

js部分代碼

<script>
import List from './List';
export default {
  name: 'Contain',
  data () {
    return {
      cloudList: [],//數(shù)組用來存放列表數(shù)據(jù)
      date: '',//最新數(shù)據(jù)更新日期
      animate: false,
      time: 3000,//定時滾動的間隙時間
      setTimeout1: null,
      setInterval1: null
    };
  },
  components: {
    List
  },
  methods: {
    // 獲取json數(shù)據(jù)并且更新日期
    getCloudListData () {
      const _this = this;
      _this.$api.getCloudListData().then(res => {
        _this.cloudList = res;
      });
      var newDate = new Date();
      _this.date = _this.dateFtt('yyyy-MM-dd hh:mm:ss', newDate);
    },
    // 日期格式化
    dateFtt (fmt, date) {
      var o = {
        'M+': date.getMonth() + 1, // 月份
        'd+': date.getDate(), // 日
        'h+': date.getHours(), // 小時
        'm+': date.getMinutes(), // 分
        's+': date.getSeconds(), // 秒
        'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
        S: date.getMilliseconds() // 毫秒
      };
      if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(
          RegExp.$1,
          (date.getFullYear() + '').substr(4 - RegExp.$1.length)
        );
      }
      for (var k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
          fmt = fmt.replace(
            RegExp.$1,
            RegExp.$1.length === 1
              ? o[k]
              : ('00' + o[k]).substr(('' + o[k]).length)
          );
        }
      }
      return fmt;
    },
    // 滾動
    scroll () {
      const _this = this;
      _this.animate = true;
      clearTimeout(_this.setTimeout1);
      _this.setTimeout1 = setTimeout(() => {
        var parent = document.getElementById('con1');
        var first = document.getElementById('con1').children[0];
        var second = document.getElementById('con1').children[1];
        parent.removeChild(first);
        parent.removeChild(second);
        parent.appendChild(first);
        parent.appendChild(second);
        _this.animate = false;
      }, 500);
    }
  },
  created () {
    const _this = this;
    _this.getCloudListData();
    //定時器每隔24小時更新一次數(shù)據(jù)
    setInterval(() => {
      _this.getCloudListData();
    }, 24 * 60 * 60 * 1000);
  },
  mounted () {
    const _this = this;
    var contain = document.getElementById('box');
    _this.setInterval1 = setInterval(_this.scroll, _this.time);
    var setInterval2 = null;
    // 鼠標(biāo)移入滾動區(qū)域停止?jié)L動
    contain.onmouseenter = function () {
      clearInterval(_this.setInterval1);
      var count = 0;
      // 如果鼠標(biāo)超過十秒不動 就啟動滾動
      setInterval2 = setInterval(function () {
        count++;
        if (count === 10) {
          _this.scroll();
          _this.setInterval1 = setInterval(_this.scroll, _this.time);
        }
      }, 1000);
      //鼠標(biāo)一動就停止?jié)L動并且計數(shù)count置為0
      contain.onmousemove = function () {
        count = 0;
        clearInterval(_this.setInterval1);
      };
    };
    // 鼠標(biāo)移出滾動區(qū)域
    contain.onmouseleave = function () {
      clearInterval(setInterval2);
      clearInterval(_this.setInterval1);
      _this.scroll();
      _this.setInterval1 = setInterval(_this.scroll, _this.time);
    };
  }
};
</script>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 講解vue-router之什么是編程式路由

    講解vue-router之什么是編程式路由

    編程式路由在我們的項目使用過程中最常用的的方法了。這篇文章主要介紹了講解vue-router之什么是編程式路由,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Vue + Scss 動態(tài)切換主題顏色實現(xiàn)換膚的示例代碼

    Vue + Scss 動態(tài)切換主題顏色實現(xiàn)換膚的示例代碼

    這篇文章主要介紹了Vue + Scss 動態(tài)切換主題顏色實現(xiàn)換膚的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 在IDEA中安裝vue插件全過程

    在IDEA中安裝vue插件全過程

    這篇文章主要介紹了在IDEA中安裝vue插件全過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • apache和nginx下vue頁面刷新404的解決方案

    apache和nginx下vue頁面刷新404的解決方案

    這篇文章主要介紹了apache和nginx下vue頁面刷新404的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue3?使用provide?inject父子組件傳值失敗且子組件不響應(yīng)

    vue3?使用provide?inject父子組件傳值失敗且子組件不響應(yīng)

    這篇文章主要介紹了vue3使用provide?inject父子組件傳值傳不過去且傳遞后子組件不具備響應(yīng)性問題解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • vue 接口請求地址前綴本地開發(fā)和線上開發(fā)設(shè)置方式

    vue 接口請求地址前綴本地開發(fā)和線上開發(fā)設(shè)置方式

    這篇文章主要介紹了vue 接口請求地址前綴本地開發(fā)和線上開發(fā)設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vuecli3.0腳手架搭建及不同的打包環(huán)境配置vue.config.js的詳細過程

    vuecli3.0腳手架搭建及不同的打包環(huán)境配置vue.config.js的詳細過程

    這篇文章主要介紹了vuecli3.0腳手架搭建及不同的打包環(huán)境配置vue.config.js的詳細過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • vue3中使用vuedraggable實現(xiàn)拖拽el-tree數(shù)據(jù)分組功能

    vue3中使用vuedraggable實現(xiàn)拖拽el-tree數(shù)據(jù)分組功能

    這篇文章主要介紹了vue3中使用vuedraggable實現(xiàn)拖拽el-tree數(shù)據(jù)分組功能,可以實現(xiàn)單個拖拽、雙擊添加、按住ctrl鍵實現(xiàn)多個添加,或者按住shift鍵實現(xiàn)范圍添加,添加到框中的數(shù)據(jù),還能拖拽排序,需要的朋友可以參考下
    2024-02-02
  • Vue?echarts實例項目商家銷量統(tǒng)計圖實現(xiàn)詳解

    Vue?echarts實例項目商家銷量統(tǒng)計圖實現(xiàn)詳解

    Echarts,它是一個與框架無關(guān)的?JS?圖表庫,但是它基于Js,這樣很多框架都能使用它,例如Vue,估計IONIC也能用,因為我的習(xí)慣,每次新嘗試做一個功能的時候,總要新創(chuàng)建個小項目,做做Demo
    2022-09-09
  • vue路由跳轉(zhuǎn)后刷新指定頁面的方法

    vue路由跳轉(zhuǎn)后刷新指定頁面的方法

    這篇文章主要介紹了vue路由跳轉(zhuǎn)后刷新指定頁面的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

武宁县| 鸡西市| 安阳市| 镇平县| 延寿县| 崇阳县| 古浪县| 瑞安市| 农安县| 海宁市| 容城县| 离岛区| 纳雍县| 固始县| 三穗县| 岳普湖县| 泰州市| 泸水县| 汕头市| 遂川县| 扶余县| 哈尔滨市| 崇明县| 申扎县| 大兴区| 营山县| 东阳市| 赫章县| 金湖县| 江达县| 佳木斯市| 长海县| 平乐县| 南宁市| 邓州市| 新源县| 三明市| 巴青县| 西城区| 博罗县| 大丰市|