JustYeh的前端博客

无缝滚动插件kxbdMarquee.js

2017-06-24

插件无缝滚动

<marquee> 曾是 IE 下独有的一个走马灯效果的标签,其他浏览器并不兼容,于是出现了使用 JavaScript 来模拟该效果的插件。可以运用于新闻内容的滚动效果。官网

在线demo

使用方法

载入 JavaScript 文件

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="jquery.kxbdmarquee.js" ></script>

CSS 样式

/**
 * 父容器需要设置溢出隐藏
 * 如果是水平滚动,项目需要设置浮动
 */
#element_id{overflow:hidden;}
#element_id ul li{float:left;}

DOM 结构

<div id="element_id">
  <ul>
    <li>...</li>
    <li>...</li>
    <li>...</li>
  </ul>
</div>

JavaScript 调用方式

$('#element_id').kxbdMarquee();
$('#element_id').kxbdMarquee({...});

参数说明

名称 默认值 说明
direction "left" 滚动方向。可设置为:"left", "right", "up", "down"
isEqual true 所有滚动的元素长宽是否相等。可设置为:true, false
loop 0 循环滚动次数,0 表示无限循环
scrollAmount 1 步长(px)
scrollDelay 20 时长(ms)

DEMO

效果图见页面横幅banner,下面是代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>kxbdmarquee demo</title>
<style type="text/css">
*{margin: 0;padding: 0;box-sizing: border-box;}
body{background: #eee;padding-top: 100px;}
h1{text-align: center;font-size: 50px;}
li{list-style: none;height: 40px;line-height: 40px;width:80px;}
.box{display: flex;flex-wrap: wrap;width: 802px;margin: 10px auto;}
.item{width: 400px;height: 200px;padding: 0 10px;border: solid 1px #aaa;margin: -1px -1px 0 0;}
#demo1,#demo2{width: 320px;overflow: hidden;}
#demo1 li,#demo2 li{float: left;}
#demo3,#demo4{height: 160px;overflow: hidden;}
</style>
</head>
<body>
<h1>kxbdmarquee.js</h1>
<div class="box">
<div class="item">
<h2>横向滚动 (right)</h2>
<div id="demo1">
<ul>
<li>滚动內容1</li>
<li>滚动內容2</li>
<li>滚动內容3</li>
<li>滚动內容4</li>
</ul>
</div>
</div>
<div class="item">
<h2>横向滚动 (left)</h2>
<div id="demo2">
<ul>
<li>滚动內容1</li>
<li>滚动內容2</li>
<li>滚动內容3</li>
<li>滚动內容4</li>
</ul>
</div>
</div>
<div class="item">
<h2>纵向滚动 (bottom)</h2>
<div id="demo3">
<ul>
<li>滚动內容1</li>
<li>滚动內容2</li>
<li>滚动內容3</li>
<li>滚动內容4</li>
</ul>
</div>
</div>
<div class="item">
<h2>纵向滚动 (top)</h2>
<div id="demo4">
<ul>
<li>滚动內容1</li>
<li>滚动內容2</li>
<li>滚动內容3</li>
<li>滚动內容4</li>
</ul>
</div>
</div>
</div>
</body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="jquery.kxbdmarquee.js" ></script>
<script>
$(function(){
$("#demo1").kxbdMarquee({direction:'left'});
$("#demo2").kxbdMarquee({direction:'right'});
$("#demo3").kxbdMarquee({direction:'up'});
$("#demo4").kxbdMarquee({direction:'down'});
})
</script>
</html>

本文来源:http://code.ciaoca.com/jquery/kxbdmarquee/