国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vue實(shí)現(xiàn)列表無縫循環(huán)滾動(dòng)

3403771864 / 2459人閱讀

  vue如何為大家展示列表無縫循環(huán)滾動(dòng),以下就是具體代碼內(nèi)容如下:

  功能介紹:

  在PC端、大數(shù)據(jù)、官網(wǎng)、后臺(tái)管理平臺(tái)開發(fā)項(xiàng)目中,時(shí)常會(huì)要求展示這種列表循環(huán)滾動(dòng)。

  大致需求:

  1、列表內(nèi)容可以循環(huán)展示;

  2、每條內(nèi)容展示時(shí)間間距幾秒;

  3、可以形成走馬燈樣式效果;

  整體思路:

  1、使用兩個(gè)定時(shí)器嵌套實(shí)現(xiàn);

  2、需要兩個(gè)相同容器存放同樣內(nèi)容,實(shí)現(xiàn)無縫銜接效果;

  效果展示:

  <!DOCTYPE html>
  <html>
  <head>
  <meta charset="utf-8">
  <title></title>
  <script src="https://unpkg.com/vue@2.6.14/dist/vue.min.js"></script>
  <style>
  /* 滾動(dòng)表格最外層 */
  .tableoOut {
  margin: 100px auto;
  width: 500px;
  height: 400px;
  background: pink;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  }
  .tableBox {
  width: 100%;
  background: #000;
  overflow: hidden
  }
  .tableTit {
  background: #000;
  width: 100%;
  height: 40px;
  color: #858A84;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  }
  .tableInner {
  height: auto;
  }
  .box {
  width: 100%;
  height: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  }
  .box .time {
  color: #858A84;
  }
  .tableoOut .addr, .tableoOut .time, .tableoOut .name {
  box-sizing: border-box;
  padding: 0 5px;text-align: center;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  }
  .tableoOut .addr {
  width: calc(100% - 200px);
  flex-shrink: 0;
  }
  .tableoOut .name, .tableoOut .time {
  width: 100px;
  flex-shrink: 0;
  }
  </style>
  </head>
  <body>
  <div id="app">
  <div class="tableoOut" ref="tableoOut">
  <div class="tableTit">
  <div class="name">姓名</div>
  <div class="addr">地址</div>
  <div class="time">入駐時(shí)間</div>
  </div>
  <div class="tableBox" ref="tableBox"
  :style="{height: tableHei}">
  <div class="tableInner" ref="tableInner">
  <div class="box" v-for="item in 7" :key="item">
  <div class="name">{{item}}</div>
  <div class="addr">山東省山東省山東省山東省山東省山東省山東省山東省
  山東省山東省山東省山東省山東省</div>
  <div class="time">2022-05-26</div>
  </div>
  </div>
  <div class="tableInner" v-if="size < 7">
  <div class="box" v-for="item in 7" :key="item">
  <div class="name">{{item}}</div>
  <div class="addr">山東省山東省山東省山東省山東省山東省山東省山東省
  山東省山東省山東省山東省山東省</div>
  <div class="time">2022-05-26</div>
  </div>
  </div>
  </div>
  </div>
  </div>
  </body>
  <script>
  new Vue({
  el: '#app',
  data: {
  tableHei: 'auto',
  timer: null,
  size: 0
  },
  mounted() {
  this.getTable();
  },
  methods: {
  getTable() {
  const outHei = this.$refs.tableoOut.clientHeight - 60;
  this.size = Math.floor(outHei / 50);
  this.tableHei = this.size * 50 + 'px';
  this.scrolls();
  },
  stepScroll() {
  const step = 50;
  let num = 0;
  const tableBox = this.$refs.tableBox;
  const stepTime = setInterval(function () {
  num += 2;
  if (num > step) {
  num = 0;
  clearInterval(stepTime);
  } else {
  tableBox.scrollTop += 2;
  }
  }, 20);
  },
  scrolls() {
  const that = this;
  const tableBox = this.$refs.tableBox;
  const tableInner = this.$refs.tableInner;
  clearInterval(this.timer);
  this.timer = setInterval(function () {
  if(tableBox.scrollTop === tableInner.scrollHeight) {
  tableBox.scrollTop = 0;
  }
  that.stepScroll();
  }, 2000);
  },
  }
  })
  </script>
  </html>

  setInterval踩坑:

  發(fā)現(xiàn)這種方法實(shí)現(xiàn)的定時(shí)輪播,有一陣沒訪問頁面,會(huì)出現(xiàn)卡停的情況,采用下面的解決方法:

  <script>
  new Vue({
  el: '#app',
  data: {
  tableHei: 'auto',
  timer: null,
  size: 0,
  stopSign: true, // 判斷定時(shí)器是否停止標(biāo)識(shí)
  stepTime: null, // 改為全局定時(shí)器
  },
  mounted() {
  const that = this;
  // 增加瀏覽器激活狀態(tài)判斷。非激活狀態(tài)為onblur
  window.onfocus = function(e) {
  const tableBox = that.$refs.tableBox;
  const sT = tableBox.scrollTop;
  console.log("激活狀態(tài)!")
  if (!that.stopSign) {
  tableBox.scrollTop = Math.round(sT / 50) * 50;
  clearInterval(that.stepTime);
  }
  }
  this.getTable();
  },
  methods: {
  getTable() {
  const outHei = this.$refs.tableoOut.clientHeight - 60;
  this.size = Math.floor(outHei / 50);
  this.tableHei = this.size * 50 + 'px';
  this.scrolls();
  },
  stepScroll() {
  const that = this;
  const step = 50;
  let num = 0;
  const tableBox = this.$refs.tableBox;
  // 改為全局定時(shí)器,且在調(diào)用前先進(jìn)行清空
  clearInterval(this.stepTime);
  this.stepTime = setInterval(function () {
  that.stopSign = false;
  num += 2;
  if (num > step) {
  num = 0;
  clearInterval(that.stepTime);
  that.stopSign = true;
  } else {
  tableBox.scrollTop += 2;
  }
  }, 1000 / 60);
  },
  scrolls() {
  const that = this;
  const tableBox = this.$refs.tableBox;
  const tableInner = this.$refs.tableInner;
  clearInterval(this.timer);
  this.timer = setInterval(function () {
  // 修改定時(shí)器結(jié)束判斷條件
  if(tableBox.scrollTop >= tableInner.scrollHeight) {
  tableBox.scrollTop = 0;
  }
  that.stepScroll();
  }, 2000);
  },
  }
  })
  </script>


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/127719.html

相關(guān)文章

  • vue實(shí)現(xiàn)消息的無縫滾動(dòng)效果(完善版)

    摘要:在昨天發(fā)布完文章之后又整理一下,發(fā)現(xiàn)有幾處需要改進(jìn)的地方,今天就及時(shí)更新一下,也算是激勵(lì)自己要保持這種積極的好習(xí)慣項(xiàng)目環(huán)境,請自行配置好相應(yīng)的,環(huán)境及路由,這里主要介紹實(shí)現(xiàn)的方法第一步在模板中使用方法循環(huán)出消息列表馬云雷軍王勤因?yàn)樵谙? 在昨天發(fā)布完文章之后又整理一下,發(fā)現(xiàn)有幾處需要改進(jìn)的地方,今天就及時(shí)更新一下,也算是激勵(lì)自己要保持這種積極的好習(xí)慣 項(xiàng)目環(huán)境vue-cli ,請自行配...

    luckyyulin 評(píng)論0 收藏0
  • js實(shí)現(xiàn)列表自動(dòng)滾動(dòng)循環(huán)播放

      列表自動(dòng)滾動(dòng)循環(huán)播放不要太爽,下面看看具體代碼:  1.實(shí)現(xiàn)效果圖  鼠標(biāo)移入,暫停滾動(dòng); 鼠標(biāo)移出,繼續(xù)滾動(dòng);  2.原理  第一:要實(shí)現(xiàn)無縫銜接,在原有ul后面還要有一個(gè)一樣內(nèi)容的ul;  第二:在最外層div為可視區(qū)域,設(shè)overflow:hidden;  第三:2個(gè)ul的高度 > 外層可視div高度,才能滾動(dòng);  3.實(shí)現(xiàn)代碼  html:  <!--vue-->  ...

    3403771864 評(píng)論0 收藏0
  • vue無縫滾動(dòng)的插件開發(fā)填坑分享

    摘要:寫插件的初衷項(xiàng)目經(jīng)常需要無縫滾動(dòng)效果,當(dāng)時(shí)寫的時(shí)候用用這個(gè)老插件,相對不上很好用。后來轉(zhuǎn)向在沒有找到好的無縫滾動(dòng)插件,除了配置可以實(shí)現(xiàn)但是相對來說太重了,于是自己造了個(gè)輪子。 寫插件的初衷 1.項(xiàng)目經(jīng)常需要無縫滾動(dòng)效果,當(dāng)時(shí)寫jq的時(shí)候用用msClass這個(gè)老插件,相對不上很好用。2.后來轉(zhuǎn)向vue在vue-awesome沒有找到好的無縫滾動(dòng)插件,除了配置swiper可以實(shí)現(xiàn)但是相對來...

    岳光 評(píng)論0 收藏0
  • jquery特效:無縫向上循環(huán)滾動(dòng)列表

    摘要:效果呈現(xiàn)整個(gè)列表間隔設(shè)定的時(shí)間向上移動(dòng)一個(gè)的高度結(jié)構(gòu)設(shè)置時(shí),注意高度是顯示多少個(gè)如的高度是,顯示個(gè),高度則是實(shí)現(xiàn)思路獲得下第一個(gè)元素的高度,對它的或進(jìn)行一個(gè)從有到無的動(dòng)畫變化,代碼如下或者改成動(dòng)畫結(jié)束后,把它插到最后,形成無縫 效果呈現(xiàn) 整個(gè)列表間隔設(shè)定的時(shí)間向上移動(dòng)一個(gè)item的高度 html結(jié)構(gòu): title1 title2 ...

    hot_pot_Leo 評(píng)論0 收藏0
  • vue-music(1)音樂播發(fā)器 項(xiàng)目開發(fā)記錄

    摘要:在中新建組件許文瑞正在吃屎。。。。在中添加如下代碼三歌手組件開發(fā)歌手首頁開發(fā)數(shù)據(jù)獲取數(shù)據(jù)獲取依舊從音樂官網(wǎng)獲取歌手接口創(chuàng)建我們和以前一樣,利用我們封裝的等發(fā)放,來請求我們的接口,返回給。 Vue-Music 跟學(xué)一個(gè)網(wǎng)課老師做的仿原生音樂APP跟學(xué)的筆記,記錄點(diǎn)滴,也希望對學(xué)習(xí)vue初學(xué)小伙伴有點(diǎn)幫助 showImg(https://segmentfault.com/img/remot...

    happen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<