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知识库 -> 列表轮播(移动滚动条)vue js -> 正文阅读

[JavaScript知识库]列表轮播(移动滚动条)vue js

页面调用

// 滚动
methods:{
	toRoll() {
      // 绑定滚动和鼠标事件
      this.animationLiveHood = animationUseScroll(
        this.$refs['listWrap'],// 传入对应的ref 值
        {
          height: 80,
          delay: 3000
        }
      )
    },
}
    
 destoryed() {
    // 离开页面 销毁定时器
    this.animationLiveHood = null
  }

公用方法

// 利用滚动条滚动的列表轮播 yy.s
export function animationUseScroll(element, options) {
  class Scroll {
    /**
     * @param element 运行的DOM
     * @param options 参数
     * {  height:90, // 每次滚动的距离 px
     *    delay: 4000, // 每次滚动间隔事件 ms
     *  }
     */
    constructor(element, options) {
      const defaultOption = {
        height: 90,
        delay: 4000
      }
      this.options = Object.assign(defaultOption, options)
      this.element = element
      this.interval = null // 定时器对象
      this.toRoll() // 开启滚动
      this.mouseIn() //  绑定鼠标移入
      this.mouseOut() //  绑定鼠标移出
    }
    // 列表滚动
    toRoll() {
      // 拿到表格中承载数据的div元素
      const divData = this.element
      // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果
      this.interval = setInterval(() => {
        // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
        if (divData.clientHeight + divData.scrollTop >= divData.scrollHeight) {
          // 重置table距离顶部距离
          divData.scrollTop = 0
        } else {
          // 设置滚动过度动画
          const subInterval = setInterval(() => {
            if (divData.scrollTop % this.options.height === 0 || divData.clientHeight + divData.scrollTop >= divData.scrollHeight) {
              // 滚动到下一行 时清除定时器
              clearInterval(subInterval)
            }
            // 元素自增距离顶部1像素
            divData.scrollTop += 1
          }, 5)
        }
      }, this.options.delay)
    }
    // 鼠标移入
    mouseIn() {
      this.element.addEventListener('mouseenter', () => {
        clearInterval(this.interval)
      }, false)
    }
    // 鼠标移出
    mouseOut() {
      this.element.addEventListener('mouseleave', () => {
        this.toRoll()
      }, false)
    }
  }

  return new Scroll(element, options)
}
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:22:38  更:2022-03-10 22:25:55 
 
开发: 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/24 7:29:56-

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