vue 标题上下滚屏 无缝轮播
参考网址:https://www.jianshu.com/p/b6813193ca0d
<template>
<div class="wrap" :style="{height:height + 'px'}">
<div
class="box"
:style="{top: '-' + height + 'px', height: (height * actualMap.length) + 'px'}"
>
<div
class="item"
v-for="(item,index) in actualMap"
:key="index"
@click="showPreview(item)"
:style="{'height':height + 'px','line-height':height + 'px'}"
>
<div
class="inner_content"
:style="{'line-height':height/2 + 'px'}"
>{{item.rollTitle == "" ? item.title : item.rollTitle}}</div>
<div
class="amount_title"
:style="{'line-height':height/2 + 'px'}"
>{{item.pubTm|formatDate2}} · 浏览次数 {{item.viewCount}}</div>
</div>
</div>
</div>
</template> <script>
export default {
name: "selfCarousel", // 自定义标题栏走马灯
props: {
height: {
default: 40,
type: Number
},
contentArr: {
default: [],
type: Array
}
},
data() {
return {
box: null,
timer: undefined,
moveTimer: undefined,
index: 1
};
},
computed: {
actualMap: function() {
let Tmp = this.contentArr
? JSON.parse(JSON.stringify(this.contentArr))
: [];
if (this.contentArr.length > 0) {
Tmp.unshift(this.contentArr[this.contentArr.length - 1]);
Tmp.push(this.contentArr[0]);
}
return Tmp;
}
},
mounted() {
this.box = document.getElementsByClassName("box")[0];
this.inintTimer();
let _this = this;
$(".wrap").hover(
function(e) {
clearInterval(_this.timer);
_this.timer = undefined;
},
function() {
_this.inintTimer();
}
);
},
methods: {
showPreview(row) {
this.$emit("showPreview", row);
},
moveWidthIndex() {
var l = this.index * -this.height - this.box.offsetTop;
var count = 0;
clearInterval(this.moveTimer);
let self = this;
this.moveTimer = setInterval(function() {
count++;
self.box.style.top =
self.box.offsetTop + l / (self.contentArr.length * 2) + "px";
if (count >= self.contentArr.length * 2) {
clearInterval(self.moveTimer);
self.box.style.top = self.index * - self.height + "px";
}
}, 20);
},
nextStep() {
this.index++;
if (this.index == this.actualMap.length) {
this.index = 2;
this.box.style.top = "-" + this.height + "px";
}
this.moveWidthIndex();
},
inintTimer() {
let self = this;
this.timer = setInterval(function() {
self.nextStep();
}, 2000);
}
}
};
</script> <style lang="less" scoped>
.wrap {
width: 100%;
position: relative;
overflow: hidden;
}
.box {
width: 100%;
position: absolute;
}
.item {
width: 100%;
}
.inner_content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
color: #333333;
}
.amount_title {
font-size: 14px;
color: #999999;
}
</style>
vue 标题上下滚屏 无缝轮播的更多相关文章
- 原生js写一个无缝轮播图插件(支持vue)
轮播图插件(Broadcast.js) 前言:写这个插件的原因 前段时间准备用vue加上网易云的nodejs接口,模拟网易云音乐移动端.因为想自己写一遍所有的代码以及加固自己的flex布局,所以没有使 ...
- JQ无缝轮播图-插件封装
类似京东的这种无缝轮播效果: 实例代码下载 HTML代码: <body> <!-- /*觅me 探索生活*/ --> <div class="test" ...
- 网站banner无缝轮播
网站banner无缝轮播 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- bootstrapcss3触屏滑块轮播图
插件描述:bootslider响应bootstrapcss3触屏滑块轮播图 小海已经好久没分享技术性文章了,这个基于bootstrap的触屏版轮播图绝对满足大家的胃口,并且支持移动端触摸滑动.功能上, ...
- js动画 无缝轮播 进度条 文字页面展示 div弹窗遮罩效果
1.无缝轮播 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.a ...
- jQuery插件slides实现无缝轮播图特效
初始化插件: slides是一款基于jQuery无缝轮播图插件,支持图内元素动画,可以自定义动画类型 1 2 3 4 5 6 7 8 9 10 $(".slideInner").s ...
- 分别用css3、JS实现图片简单的无缝轮播功效
本文主要介绍分别使用CSS3.JS实现图片简单无缝轮播功效: 一.使用CSS3实现:利用animation属性 (实现一张一张的轮播,肉眼只看见一张图片) HTML部分比较简单,两个div下包着几个i ...
- JQuery制作基础的无缝轮播与左右点击效果
在网页中我们想要的无缝轮播左右循环有好多好多中,这是我第一个轮播效果,也是最基础的,和大家分享一下,对于初学者希望你们能有所借鉴,对于大神我想让你们尽情的虐我给我宝贵的意见. 这个是我要的效果 进入正 ...
- jQuery图片无缝轮播
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- 经典PID控制及应用体会总结
经典PID控制及应用体会总结 PID控制原理 PID是一种线性控制器,它根据给定值rin(t)与实际输出值yout(t)构成控制方案: 重点关注相关算法是如何对偏差进行处理的: PID控制器各校正环节 ...
- table列表全选
<table><tr><td><input type="checkbox" /></td><td></ ...
- JavaSE基础(二)--Java环境配置
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java window系统安装ja ...
- 深入理解linux内核-内存寻址
逻辑地址:由一个段和偏移量组成的地址线性地址(虚拟地址):物理地址:CPU的物理地址线相对应的地址32或36位 多处理器系统中每个CPU对应一个GDT 局部线程存储:用于线程内部的各个函数调用都能访问 ...
- 解决 windows oracle ORA-01113和ORA-01110错误
windows2008上的数据库版本为11.2.0.4.0,数据库打开为mount状态.报错如下: SQL> startup ORACLE instance started. Total Sys ...
- go 函数定义
-------------------------------------------- package main import "fmt" func add(x int, y i ...
- Golang mgo 模糊查询的使用
在日常使用的Mongodb中,有一项功能叫做模糊查询(使用正则匹配),例如: db.article.find({"title": {$regex: /a/, $options: & ...
- 去除element-ui table表格右侧滚动条的高度
/* //element-ui table的去除右侧滚动条的样式 */ ::-webkit-scrollbar { width: 1px; height: 1px; } /* // 滚动条的滑块 */ ...
- Web前后端分离开发(CRUD)及其演变概括
今天学习了前后端分离开发模式又从网上查了一些资料就写了一篇博客分享: 一.为什么分离前后端 1.1早期开发 1.2后段为主mvc模式 1.2.1Structs框架介绍 1.2.2Spring mcv开 ...
- js:把字符串转为变量使用; js下将字符串当函数去执行的方法
1 把字符串当变量使用 通过计算 string 得到的值(如果有的话).该方法只接受原始字符串作为参数 demo: var type = "car"; var newStr = & ...