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 ...
随机推荐
- 设计模式的好书 -- ongoing
1 设计模式--可复用面向对象软件的基础 Erich Gamma. Richard Helm -- 已经下载了/baiduNetDisk Design Patterns --- Element ...
- PS错误1
PS错误1 提示要卸载.不用卸载直接安装即可.还保留了之前的设置. 在安装目录下看看有没有安装PS的exe程序.可能有.
- Windows下jmap命令报错问题
最近换了笔记本,新的工作环境下jmap命令居然在报错,而jps.jstat.jinfo.jstack都能正常使用,所以初步排除进程号的问题. Attaching to core 17536 fr ...
- (五)Respose 知识点总结 (来自那些年的笔记)
目录 HttpServletResponse简介 向客户机写数据 HttpServletResponse应用 打印中文,让浏览器显示不乱码 : 下载文件 输出随机图片(验证码) 不要缓存 图片的src ...
- python学习-19 字典
字典dict 1.dic = {key:value,key:value} 字典有{ }括住,字典的value可以是任意值,字典的key的值不包括列表和字典 di = {"age": ...
- WUSTOJ 1285: Factors(Java)
1285: Factors 参考 hadis_fukan的博客--wustoj 1285 Factors 题目 输入一个数n,找出1~n之间(包括1,n)的质因子最多的数(x)的质因子个数(f ...
- 【C#】课堂知识点#2
课堂上老师讲了几点,自己觉得挺重要的,记录下来 1.代码字体调大,方便调试 2.虚心请教,没有谁比谁厉害,不会就虚心多请教,baidu并不能解决所有问题.沟通交流也是一种能力 3.只有每行写对了,才继 ...
- C# LoadXml System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.
去掉BOM头 writer = new XmlTextWriter(stream, new UnicodeEncoding(false,false)); 如果是UTF8 writer = new Xm ...
- JS OOP -02 深入认识JS中的函数
深入认识JS中的函数: 1.概述,认识函数对象 2.函数对象和其他内部对象的关系 3.将函数作为参数传递 4.传递给函数的隐含参数:arguments 5.函数的apply,call方法和length ...
- Nature Biotechnology:人类基因研究走近平民 数据是基础解读更重要
Nature Biotechnology:人类基因研究走近平民 数据是基础解读更重要 5万美元可以做什么?最近,美国斯坦福大学教授斯蒂芬·夸克在国际著名学术期刊<自然·生物技术>发表论文宣 ...