- 浏览: 2069078 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
图片不间断滚动的特效代码详细讲解
转自:http://www.g168.net/html/JspServlet_1/2008/1129/081129916BGKC86CH12CA8B7B90ED.html
-----------------------------------------------------------------------------------------------------------
我很久前在YAHOO上扣的代码,兼容性很好,在Windows下的主流浏览器中可以正常运行。
演示地址:index.html
代码下载:scrollpic.rar
大家先不要急着下载代码,你随时都可以下,我们来分析下代码(代码中我已经写了很详细的注释),要之其所以然,在解读别人的代码中学习提高自己,然后可以灵活运用,这个才是我将这个效果贴出来的主要目的,代码如下:
scrollver.js
scrollVertical.prototype.scrollArea=null; // 滚动的区域
scrollVertical.prototype.scrollMsg=null; // 要滚动的内容
scrollVertical.prototype.unitHeight=0; // 单独一行滚动内容的高度(程序中通过过的要滚动行的一个节点的offsetHeight获得)
scrollVertical.prototype.msgHeight=0; // 整个滚动内容的高度
scrollVertical.prototype.copyMsg=null; // 复制滚动内容(程序中使用复制scrollMsg.innerHTML来获得的)
scrollVertical.prototype.scrollValue=0; // 滚动的值
scrollVertical.prototype.scrollHeight=0; // 滚动高度
scrollVertical.prototype.isStop=true; // 停止滚动
scrollVertical.prototype.isPause=false; // 暂停滚动
scrollVertical.prototype.scrollTimer=null; // 滚动计时器
scrollVertical.prototype.speed=2000; // (默认)滚动的时间间隔2秒
/**
* @method isMoz - 判断是否为Mozilla系列浏览器
*/
scrollVertical.prototype.isMoz = function(){
return navigator.userAgent.toLowerCase().indexOf('gecko') > 0;
};
/**
* @method play - 滚动信息的处理方法(函数)
* @param {Object} o - 滚动类
*/
scrollVertical.prototype.play = function(o){
var s_msg = o.scrollMsg;
var c_msg = o.copyMsg;
var s_area = o.scrollArea;
var msg_h = o.msgHeight;
var anim = function(){
// 如果已经开始计时(间隔时间执行向上滚动),
// 就停止它(以免无限制执行,耗系统资源)。
if (o.scrollTimer) {
clearTimeout(o.scrollTimer);
}
// 如果暂停了滚动(鼠标放到了滚动层上)
// 开始以10毫秒的时间间隔运行滚动
if (o.isPause) {
o.scrollTimer = setTimeout(anim, 10);
return;
}
// 当显示完所有信息后(这时滚动的距离就等于要滚动信息的高度msg_h)
// 这时又重新开始滚动,将滚动距离清零
if (msg_h - o.scrollValue <= 0) {
o.scrollValue = 0;
}
else {
o.scrollValue += 1;
o.scrollHeight += 1;
}
// 根据浏览器的不同,处理滚动
if (o.isMoz) { // Mozilla引擎浏览器
s_area.scrollTop = o.scrollValue;
}
else { // 其余的浏览器则使用控制CSS样式处理滚动
s_msg.style.top = -1 * o.scrollValue + "px";
c_msg.style.top = (msg_h - o.scrollValue) + "px";
}
// 滚动高度等于显示滚动区域高度时(滚动完一行,一行内容全部显示)
// 暂停4秒中,然后再开始执行下依次滚动。
if (o.scrollHeight % s_area.offsetHeight == 0) {
o.scrollTimer = setTimeout(anim, o.speed);
}
else {
// 在两行内容之间过度滚动时,每10豪秒上升1px
o.scrollTimer = setTimeout(anim, 10);
}
};
// 执行滚动
anim();
};
/**
* scrollVertical 垂直滚动的构造函数
* @param {Object} disp - 必须 显示滚动区域的DOM节点(或节点ID)
* @param {Object} msg - 必须 被显示的信息的DOM节点(或节点ID)
* @param {string} tg - 可选 以什么标记为一行的标签名称(tagName)
*/
function scrollVertical(disp, msg, tg){
// 给在之前定义的this.scrollArea付值
if (typeof(disp) == 'string') {
// 如果disp给的是节点的ID,通过document.getElementById获取该节点
// 然后付值给this.scrollArea
this.scrollArea = document.getElementById(disp);
}
else {
// 如果是DOM节点,直接付给this.scrollArea
this.scrollArea = disp;
}
// 以给this.scrollArea相同的方法给this.scrollMsg付值
if (typeof(msg) == 'string') {
this.scrollMsg = document.getElementById(msg);
}
else {
this.scrollMsg = msg;
}
// 为了开发方便,
// 不用一直写this.scrollMsg这么常的名字,
// 将两个对象付给局部变量
var s_msg = this.scrollMsg;
var s_area = this.scrollArea;
// 如果没有给定一行的识别标签,
// 默认将li标签认为是一行的标签
// 所以上面介绍的,tag参数是可选的
if (!tg) {
var tg = 'li';
}
// 获取单行的高度
// 获取到第一(s_msg.getElementsByTagName(tg)[0])tg(一行的标签)的高度,作为单行的高度
this.unitHeight = s_msg.getElementsByTagName(tg)[0].offsetHeight;
// 获取整个信息框的高度
// 公式为 单行高度(unitHeight)*行数(s_msg.getElementsByTagName(tg).length,显示信息中包含多少个tg(行)标签)
this.msgHeight = this.unitHeight * s_msg.getElementsByTagName(tg).length;
/*
* 复制要显示的信息:
* 连续滚动的实现其实就是通过复制信息,
* 并将复制的信添加到原始信息后
* 当原始信息滚动显示完成,就接着滚动显示复制的信息
* 但给人的错觉是,我们看到信息连续不断的显示
*/
// 创建复制内容节点
var copydiv = document.createElement('div');
// 这个地方感觉有点嵌妥
// 直接使用element.id的方式,不过看上去,主流的浏览器都支持
// 标准的DOM Core方法:
// copydiv.setAttribute('id',s_area.id + "_copymsgid")
copydiv.id = s_area.id + "_copymsgid";
// 复制原始的信息
// 将原始的信息s_msg中的内容,直接用innerHTML写到
copydiv.innerHTML = s_msg.innerHTML;
// 设置复制信息节点的高度
copydiv.style.height = this.msgHeight + "px";
// 将复制节点添加到原始接点(scrollMsg)后
// 其实实现的方法就是将复制信息节点(copydiv)添家到显示区域的节点(scrollArea)中
s_area.appendChild(copydiv);
this.copyMsg = copydiv;
// 开始执行滚动方法
this.play(this);
}
发表评论
-
关于 字符串中的单引号, 在sql存储过程中的传输总结; 逗号分隔的多个变量提取方法.
2011-10-14 17:49 3403摘自:http://blog.csdn.net/nutia ... -
抓取网站内容 asp.net
2011-10-11 13:28 1052HttpWebRequest myReq ... -
两个DATASET合并成一个新的DATASET
2011-09-28 18:17 2525摘自:http://topic.csdn.net/t/2 ... -
VS设置使用哪个浏览器来调试网页
2011-08-30 16:57 1198摘自:http://zhidao.baidu.com/ques ... -
可使用js获取TREE的CheckBox
2011-08-20 12:32 1093摘自:http://www.uipower.com/bb ... -
正则表达式 验证邮箱
2011-06-02 18:14 2647正则表达式 摘自:http://www.alixixi.com ... -
未能加载程序集 App_Web_vdcnimdz”错误
2011-04-25 17:38 1600问题描述: 自己的一个WebGPS程序,只是拷到了别的 ... -
.net跳到指定错误页面兵显示详细的错误信息
2011-04-14 16:48 1257.net跳到指定错误页面兵显示详细的错误信息 摘自:h ... -
注册*.ocx控件
2011-04-14 11:23 947注册*.ocx控件 问题描述:本地的网站的bin目录下有了个 ... -
C# 读取文本文件的时候出现汉字乱码
2011-04-12 16:01 2473问题描述:C# 使用ReadAllText方法读取文本文件的时 ... -
VS 2008中如何显示代码的行号
2011-04-09 09:51 1247摘自:http://zhidao.baidu.com/ques ... -
VS.NET2008可以使用书签的功能
2011-04-08 17:19 1393摘自:http://blog.csdn.net/lmh_851 ... -
两个类库要添加引用才能使用
2011-04-02 13:57 1165两个类库要添加引用才能使用 ---------------- ... -
缓存 <%@ OutputCache Duration="6000" VaryByParam="none" %>
2011-04-02 10:53 1180在页首添加: <%@ OutputCache Durat ... -
FrameSet的加载顺序
2011-04-02 09:56 3906FrameSet的加载顺序是: (1) mainFrame ... -
Response.AddHeader “P3P”,”CP=CAO PSA OUR”
2011-04-01 18:01 2552摘自:http://my.donews.com/alor ... -
Hashtable 的使用
2011-03-31 09:36 8192011-3-31 Hashtable 的使用: ... -
google地图使用(二)
2011-03-30 10:30 13322011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
GOOGLE地图
2011-03-29 18:31 8342011-3-291. 今天客户反映,说GOOGLE地图上的拖 ... -
此组中没有可用的控件 工具箱 vs2008
2011-03-29 09:20 2135问题描述: 此组中没有可用的控件 工具箱 vs2008 ...
相关推荐
1. **基本结构**:一个简单的图片滚动特效通常包括HTML结构、CSS样式和JavaScript代码三部分。HTML负责布局和内容,CSS用于美化,JavaScript则用来控制动态行为。 2. **HTML布局**:HTML中,我们需要创建一个包含...
本篇文章将详细探讨如何利用JavaScript实现不间断图片滚动代码。 首先,我们需要理解JavaScript的基础知识。JavaScript是一种解释型、跨平台的编程语言,主要用于网页和网络应用。它主要负责处理用户交互、动态内容...
3. js:这可能是包含JavaScript代码的文件夹,用于实现图片滚动的逻辑,比如切换图片、控制动画速度、响应用户交互等。JavaScript代码可能包括对DOM的操作,使用定时器实现自动切换,以及添加过渡效果以提升视觉体验...
1. **不间断滚动图片** 不间断滚动图片通常通过JavaScript、jQuery或现代前端框架如Vue、React来实现。基本思路是设置一个定时器,每隔一定时间更新图片的位置,给用户造成图片在不断滚动的视觉效果。具体步骤如下...
不间断滚动 支持鼠标经过停止 文字图片不间断向下 向上滚动
`setInterval`函数会在指定的时间间隔(这里是3000毫秒,即3秒)调用`scroll`函数,从而实现不间断的图片滚动效果。 为了增强用户体验,我们还可以添加一些额外功能,如自动暂停滚动当鼠标悬停在滑动区域上,以及...
图片不间断滚动,当鼠标移上停止,鼠标离开继续滚动
在IT行业中,图片滚动特效是一种常见的视觉展示手法,尤其在网站设计、移动应用以及广告展示等领域广泛应用。"不间断滚动图片特效"通常指的是一个能够自动循环播放一组图片的效果,这种效果可以增强用户的交互体验,...
网页中图片的不间断上下左右滚动,下载下来改成HTML文件,插入网页内部,把图片改成自己的就行了
在这个案例中,封装类可能包含了处理文字和图片滚动的逻辑,如初始化、设置滚动速度、方向控制等。 接着,我们来探讨"不间断滚动"。这是一种常见的动态效果,可以使得文字或图片在页面上持续地从一端移动到另一端,...
Marquee Scroll通用不间断滚动JS封装类是一种常见的JavaScript技术,用于实现网页元素的自动滚动效果,常见于新闻滚动、公告栏等场景。这类封装类的主要目的是简化开发者的工作,提供一种便捷的方式来实现不同方向...
综上所述,"滚屏(图片不间断滚动)通用不间断滚动JS封装类"项目涵盖了从基本的图片滚动原理到高级的优化策略,为开发者提供了一套完整的解决方案,使得在网页中实现图片不间断滚动变得简单高效。
### 不间断图片滚动效果实现方法 在网页设计与开发领域中,为了增强用户体验和页面交互性,常常会使用各种动态效果。其中,“js图片不间断滚动代码”是一种常见且实用的功能,它可以让一系列图片在页面上自动连续...
图片文字不间断滚动,图片文字不间断滚动,图片文字不间断滚动,图片文字不间断滚动
js水平滚动永不间断的广告特效js水平滚动永不间断的广告特效
一个可以代替Marquee走马灯特效的图片滚动封装类,它可控制图片做无缝循环滚动,可以在上下左右四个方面滚动,而且具备丰富自定义设置功能。它的特点: 横向、纵向滚动格式调整 (解决横向滚动换行的问题,无需特殊...
【JavaScript实现图片不间断滚动的代码】是用于在网页上创建一个自动滚动的图片展示效果的JavaScript函数。这个功能常用于网站的广告轮播或者图片展示区,能够使用户无需手动操作就能浏览多张图片。以下是该代码的...
在网页设计中,"不间断无缝滚动图片"是一种常见的视觉效果,它通过JavaScript或者CSS3等技术实现,使得图片能够连续不断地、平滑地从一端滚动到另一端,给人一种连贯且无中断的视觉体验。这种效果常用于网站的轮播图...
【标题】:“不间断图片左右滚动代码演示”是一个关于JavaScript(JS)实现的动态图片滚动效果的实例。在网页设计中,这种效果常用于展示产品、新闻或者广告,以吸引用户的注意力并提供良好的用户体验。 【描述】:...
1. 鼠标移动方向改变:当鼠标移到滚动图片区域时,如果用户的鼠标向左移动,图片滚动方向可能变为向左;如果鼠标向右移动,图片则向右滚动。这种互动性增加了用户体验。 2. 鼠标悬停停止:当鼠标停留在图片上时,...