大家都知道,做html页面时,为了提升网页的用户体验,我们需要在网页中加入一些特效,比如单行区域文字上下滚动就是经常用到的特效。如下图示效果:

<html>
<head>
<title>js实现文字上下滚动效果</title>
<style type="text/css">
#flinks{width:500px;} /* 文字上下滚动 */
.scroll-box{position:relative;top:0;overflow:hidden;padding:0 10px;display:inline-block;height:29px;line-height:29px}
.scroll-box.on{background:#fff;z-index:2;overflow:auto;height:auto !important;box-shadow:1px 1px 10px #888}
.scroll-box.on li{top:0 !important;border-bottom:1px dotted #ccc}
.scroll-box li{position:relative;}
.scroll-box a{display:inline-block;white-space:nowrap;padding-top:0 !important;padding-bottom:0 !important;margin-top:0 !important;margin-bottom:0 !important;}
.scroll-mask{z-index:1;display:none;position:fixed;top:0;right:0;bottom:0;left:0;display:none;background-color:rgba(0,0,0,0.5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F000000,endColorstr=#7F000000)}
.scroll-mask.on{/*display:block;*/}
</style>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript"> (function ($) {
/* 单行文字上下滚动 */
$.fn.adScroll = function (options) {
// 默认配置
var scrollOptions = {
interval: 6000
};
$.extend(scrollOptions, options); $(this).each(function () {
var scrollObj = $(this);
// 单行内容无需滚动显示,取消初始化
var totalHeight = 0;
scrollObj.find('li').each(function () { totalHeight += $(this).height() });
var liSize = Math.round(totalHeight / scrollObj.height());
if(liSize <= 1) return; // 初始化开始
scrollObj.attr('index', '0');
// 重置滚动容器高度
scrollObj.height(scrollObj.find('a').outerHeight(true));
// 重置滚动项 li 高度
scrollObj.find('li').size() > 1 && scrollObj.find('li').height(scrollObj.height());
// 外层容器,辅助定位
var containerObj = $('<div>').height(scrollObj.outerHeight(true));
scrollObj.wrap(containerObj);
// 遮罩层
var maskObj = $('<div>').addClass('scroll-mask');
scrollObj.after(maskObj); setInterval(function () {
if (!scrollObj.hasClass('on')) {
// 所有 li 高度之和除以容器高度
var liTotalHeight = 0;
scrollObj.find('li').each(function () { liTotalHeight += $(this).height() });
var size = Math.round(liTotalHeight / scrollObj.height());
var curIndex = parseInt(scrollObj.attr('index'));
var next = curIndex + 1 >= size ? 0 : curIndex + 1;
if (next == 0) {
scrollObj.find('li').animate({ top: 0 }, 'slow');
} else {
scrollObj.find('li').animate({ top: '-=' + scrollObj.height() }, 'slow');
}
scrollObj.attr('index', next);
}
}, scrollOptions.interval); // 滚动列表可以被展开
if(scrollObj.hasClass('box-expand')) {
// 切换
scrollObj.mouseover(function () {
scrollObj.css('top', scrollObj.find('li').css('top'));
scrollObj.addClass('on');
maskObj.addClass('on');
}).mouseout(function () {
scrollObj.css('top', 0);
scrollObj.removeClass('on');
maskObj.removeClass('on');
});
}
});
};
})(jQuery); $(function(){
if ($('.scroll-box').size() > 0) {
$('.scroll-box').adScroll({interval: 2000});
}
}) </script>
</head>
<body>
<h1>js实现文字上下滚动效果</h1>
<h2>文字滚动示例一:</h2>
<p>适用于单行区域文字或图片上下滚动广告</p>
<ul class="scroll-box box-expand">
<li><a href="#" target="_blank">双十一大额优惠券,领券折上折!</a></li>
<li><a href="#" target="_blank" >※ 新人福利社,超级好货0元购 ※</a></li>
<li><a href="#" target="_blank">韩都衣舍,闺蜜衣橱 — 天猫女装销量冠军</a></li>
<li><a href="#" target="_blank" >20181031期福利红包,订单提交时抵现使用</a></li>
<li><a href="#" target="_blank">淘宝网优惠,官方活动一网打尽</a></li>
</ul> <h2>文字滚动示例二:</h2>
<p>适合于单行区域友情链接上下滚动</p>
<ul id="flinks" class="scroll-box">
<li>
<a href="#" target="_blank">友情链接1</a>
<a href="#" target="_blank">友情链接2</a>
<a href="#" target="_blank">友情链接3</a>
<a href="#" target="_blank">友情链接4</a>
<a href="#" target="_blank">友情链接5</a>
<a href="#" target="_blank">友情链接6</a>
<a href="#" target="_blank">友情链接7</a>
<a href="#" target="_blank">友情链接8</a>
<a href="#" target="_blank">友情链接9</a>
<a href="#" target="_blank">友情链接10</a>
</li>
</ul>
</body>
</html>

要点提示:

1、特效初始化代码

$('.scroll-box').adScroll({interval: 2000});
2、特效代码结构

<ul class="scroll-box box-expand">
<li>........</li>
<li>........</li>
</ul>
3、样式名称 box-expand 控制鼠标移上时是否显示所有内容

特效源码源自:领券网 www.i075.com

js实现文字上下滚动效果的更多相关文章

  1. js 实现文字列表滚动效果

    今天要实现抽奖名单在首页滚动展示的效果,就用js写了一个,代码如下: html代码: <style type="text/css"> *{margin:;padding ...

  2. js标题文字向上滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  3. jquery实现文字上下滚动效果

    文字上下滚动是经常用到的js效果,这里介绍一种上下渐隐渐出的文字展现效果! 代码实现很简单,只需要引入jquery就可以. 代码如下: <!DOCTYPE> <head> &l ...

  4. Vue开发组件之替代marquee标签,超出宽度文字横向滚动效果

    一.npm 安装 如果你想安装插件(自己写的)安装 install dependencies npm i marquee-components 使用 在main.js引入 import marquee ...

  5. js 实现单行文本滚动效果

    js 代码如下: /***************滚动场次开始*****************/ function ScrollText(content, btnPrevious, btnNext, ...

  6. jquery实现多行文字图片滚动效果

    今儿分享一个jquery实现多行滚动效果. 我看一些论坛网站上面,公告处用的较多. 代码如下 复制代码 // 多行滚动(function($){$.fn.extend({Scroll:function ...

  7. js实现文字横向滚动

    页面布局      <div id="scroll_div" class="fl">         <div id="scroll ...

  8. TextView实现文字水平滚动效果

    有时候我们使用TextView显示文本,只想把所有内容用一行显示出来,但是一行又显示不完,就需要让文本实现水平滚动的效果. 具体实现方法如下: 1,实现自定义TextView并实现isFocused( ...

  9. jquery文字纵向滚动效果(带间隔停留)

    <script type="text/javascript"> //文字纵向滚动 $(function() { var $this = $("#quotati ...

随机推荐

  1. day10——动态参数、函数注释、名称空间、函数的嵌套、global及nonlocal

    day10 三元运算符: 变量 = 条件成立的结果 条件判断 条件不成立的结果 补充: # lst = [12,23,3,4,5,6] # def func(*args): # print(*args ...

  2. PV、UV、UIP、VV、DAU、CTR指的是什么?

    PV(page view) 网站浏览量,指网页的浏览次数,用户每打开一次页面就记录一次PV,多次打开则累加. UV(unique vistor) 独立访客数,指的是某一天访问某站点的人数,以cooki ...

  3. redis三种集群策略

    主从复制 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库 从数据库一般都是只读的,并且接收主数据库同步过来的数据 一个master可以拥有多个slave,但是一个slav ...

  4. MyCat - 数据库中间插件

    什么是MyCat 是目前最流行的分布式数据库中间插件 为什么使用MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经 ...

  5. 带有图标的MessageBox

    MessageBoxUtils类的代码如下: Ext.define('org.pine.util.MessageBoxUtils', { singleton: true, /** 普通信息提示框 */ ...

  6. 【Jmeter】他人总结篇链接(共八篇相关文章)

    [Jmeter]他人总结篇链接(共八篇相关文章) https://blog.csdn.net/mu_wind/article/category/9029006

  7. SAP Hybris Discount group,折扣组,折扣记录,用户组几组概念的关联

    在backoffice的Price Settings->Discount->Customer Discount Groups菜单下面,创建一个新的Customer Discount Gro ...

  8. linux下测试某网址或IP端口能否访问

    参考这篇 Linux系统下怎么测试端口的连通性 测试端口连通 nc -v -w 1 183.xx.oo.ee -z 82 1linux主机centos操作系统,项目里面需要访问一个URL路径的接口ht ...

  9. js计算两个时间差 天 时 分 秒 毫秒

    // 计算两个时间差 dateBegin 开始时间 function timeFn(dateBegin) { //如果时间格式是正确的,那下面这一步转化时间格式就可以不用了 var dateEnd = ...

  10. angularcli 第五篇(输入框、表单处理)

    本文参考:Angular4 表单快速入门 注:涉及input表单时要在AppComponent中引入 FormsModule模块:     import{ FormsModule } from '@a ...