Screenshot:
JSFiddle: https://jsfiddle.net/650spwen/
Screenshot:
JSFiddle: https://jsfiddle.net/650spwen/
/*小程序中请复制到xxx.wxss*/ | |
@keyframes kf-marque-animation{ 0% { transform: translateX(0); } 100% { transform: translateX(-33.3%); } } | |
.marquee{ | |
width: 100%; | |
height: 44px; | |
line-height: 44px; | |
background: #fff; | |
border: none; | |
display: block; | |
margin: 0 auto; | |
overflow: hidden; | |
white-space: nowrap; | |
text-overflow: clip; | |
position: relative; | |
font-size: 28rpx; | |
} | |
.marquee .content{ | |
display: inline-block; | |
position: relative; | |
padding-right: 0px; | |
animation: kf-marque-animation 11.3s linear infinite; | |
white-space: nowrap; | |
} | |
<view>3 css3 + animation跑马灯</view> | |
<view class="marquee"> | |
<view class="content"> | |
<text>{{text}}</text> <text style="display: inline-block; width: 5em;"></text> | |
<text>{{text}}</text> <text style="display: inline-block; width: 5em;"></text> | |
<text>{{text}}</text> <text style="display: inline-block; width: 5em;"></text> | |
</view> | |
</view> |
<!doctype html> | |
<html> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" | |
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> | |
<meta http-equiv="X-UA-Compatible" content="ie=edge"> | |
<title>CSS3 Marquee Test</title> | |
<style> | |
@keyframes kf-marque-animation{ 0% { transform: translateX(0); } 100% { transform: translateX(-33.3333%); } } | |
.marquee{ | |
width: 400px; | |
height: 44px; | |
line-height: 44px; | |
background: #e9eaea; | |
display: block; | |
margin: 0 auto; | |
overflow: hidden; | |
white-space: nowrap; | |
text-overflow: clip; | |
position: relative; | |
} | |
.marquee .content{ | |
display: inline-block; | |
position: relative; | |
padding-right: 0px; | |
white-space: nowrap; | |
animation: kf-marque-animation 12s infinite linear; | |
} | |
.marquee .content-space{ | |
display: inline-block; | |
width: 5em; | |
} | |
</style> | |
</head> | |
<body> | |
<div class="marquee"> | |
<span class="content"> | |
raw js + css3 transition 跑马灯测试。跑马灯测试。跑马灯测试。 <span class="content-space"></span> | |
</span> | |
</div> | |
<script> | |
//滚动 | |
(function () { | |
var speed = 50; // 速度 -- px每秒 | |
var $marquee = document.querySelector('.marquee'); | |
var $marqueeContent = $marquee.querySelector('.content'); | |
// 内容复制3份好有连续性 | |
$marqueeContent.innerHTML = $marqueeContent.innerHTML + $marqueeContent.innerHTML + $marqueeContent.innerHTML | |
var contentWidth = $marqueeContent.getBoundingClientRect().width; | |
if (contentWidth <= 0) { // 没有内容搞什么动画 | |
return; | |
} | |
// 内容复制了3份,宽度也要除以3 | |
contentWidth = contentWidth / 3 | |
// 计算一次动画应该要花费多少时间 | |
var onceTime = contentWidth / speed * 1000; //ms | |
$marqueeContent.style.animationDuration = onceTime + "ms" | |
})() | |
</script> | |
</body> | |
</html> |