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 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端自动滚屏 -> 正文阅读

[JavaScript知识库]前端自动滚屏

一、竖向滚屏

1、效果演示

请添加图片描述

2、使用步骤

  1. 新建Scroll_auto.vue,直接粘贴代码,已封装为公用组件
<!-- 自动向上滚动文字 -->
<template>![请添加图片描述](https://img-blog.csdnimg.cn/17ef8bc0c4314786ae499113e40f1b9a.gif)

  <div class="scrollAutoClass" ref="scroll">
    <ul>
      <li v-for="item in scrollData" :key="item.id">
        {{item.title}}
        <!-- <router-link to=""></router-link> -->
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data () {
    return {
      scrollArea: '',
      speed: 10,
      timer: null,
      delay: 2000,
      liHeight: '',
      topEnd:0
    };
  },
  components: {},
  props:{
    scrollData:{
      type:Array
    }
  },
  computed: {},
  mounted() {
      //向上滚动文字
      this.$nextTick(() => {
      this.scrollArea = this.$refs.scroll;
      let li = this.scrollArea.getElementsByTagName("li");
      this.liHeight = li[0].offsetHeight;
      this.scrollArea.scrollTop = 0;
      this.scrollArea.innerHTML += this.scrollArea.innerHTML;
      this.scrollData.length > 1 && setTimeout(this.startScroll, this.delay);
    })
  },
  created() {},
  methods: {
    startScroll(){
      this.timer = setInterval(this.scrollUp, this.speed);
      this.scrollArea.scrollTop++;
    },
    scrollUp(){
      if(this.scrollArea.scrollTop % this.liHeight == 0){
        clearInterval(this.timer);
        setTimeout(this.startScroll, this.delay);
      }else{
        this.scrollArea.scrollTop++;
        if(this.scrollArea.scrollTop >= this.scrollArea.scrollHeight / 2||(this.topEnd!=0&&this.scrollArea.scrollTop==this.topEnd)){
          setTimeout(()=>{
            this.scrollArea.scrollTop = 0;
          },1000)
        }else{
          this.topEnd=this.scrollArea.scrollTop
        }
      }
    },
  }
}
</script>
<style scoped>
.scrollAutoClass{
  height: 500px;
  width: 300px;
  line-height:50px;
  overflow:hidden;
}
.scrollAutoClass ul li{
  color: #03a793 ;
}
</style>
  1. 在使用的页面引入Scroll_auto作为子组件并传需要滚动的数据
<template>
      <div class="noticeClass">
        <scroll-ul :scrollData="scrollData"></scroll-ul>
      </div>
</template>

<script>
import scrollUl from "../common/scroll/Scroll_auto"
export default {
  name: "Home",
  data() {
    return {
      dataInit:0,
      scrollData: [
        { id: 1, title: 'xxx分析系统' },
        { id: 2, title: '——xxx' },
        { id: 3, title: '选择爬取网站,' },
        { id: 4, title: '筛选招聘条件。' },
        { id: 5, title: '存储分析数据,' },
        { id: 6, title: '展示数据大屏。' },
      ]
    };
  },
  components: {
    scrollUl
  },
  created(){},
  mounted() {},
  methods: {}
};
</script>
<style scoped>
</style>

一、横向滚动

1、效果演示

请添加图片描述

2、使用步骤

1、封装的组件代码如下,直接粘贴即可

<!-- 消息中心滚动消息 -->
<template>
  <div class="msgDivClass">
    <span class="msgSpanClass">{{ text }}</span>
  </div>
</template>

<script>
export default {
  data() {
    return {
      timerId: null,
      msg: "滚动1234567890开始1234567890过程1234567890结束1234567890",
      text: "",
    };
  },
  components: {},
  computed: {},
  mounted() {
    this.autoRoll();
  },
  created() {},
  methods: {
    autoRoll() {
      let that = this;
      that.text = that.msg;
      this.timerId = setInterval(() => {
        that.text =
          that.text.substring(1, that.text.length) + that.text.substring(0, 1);
      }, 500);
    },
  },
  destroyed() {
    clearInterval(this.timerId);
    this.timerId = null;
  },
};
</script>
<style scoped>
.msgDivClass {
  width: 22%;
  height: 5%;
  border: 1px solid #809ca3;
  position: absolute;
  top: 3%;
  left: 0.5%;
}
.msgSpanClass {
  white-space: nowrap; /*强制span不换行*/
  display: inline-block; /*将span当做块级元素对待*/
  width: 100%; /*限制宽度*/
  overflow: hidden; /*超出宽度部分隐藏*/
  text-overflow: ellipsis; /*超出部分以点号代替*/
  margin-top: 9%;
  font-size: 25px;
  color: #ffffff;
}
</style>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:29:05  更:2022-06-14 22:30:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/11 8:46:19-

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