`

图片不间断滚动的特效代码详细讲解--2

阅读更多

 

 

 

转自:http://www.g168.net/html/JspServlet_1/2008/1129/081129916BGKC86CH12CA8B7B90ED_2.html

 

我在脚本的注释中已经说了这个效果的实现原理,而实现一个效果的关键就是在于运用setTimeout方法和clearTimeout方法。

setTimeout(func,time)

setTimeout是window对象的一个方法,所以如果要是看到这么写window.setTimeout你不要感到奇怪,我们平时一般都省略了window。

setTimeout方法接受两个参数:
func - 在指定时间间隔内要执行的函数;
time - 执行函数的时间间隔(以毫秒为单位,1000毫秒等于1秒)

我一开始没有解释setTimeout的功能,而是先说了两个参数的意思,我想大家看了后就会有所了解,setTimeout的功能就是:设置定时器,在一段时间之后执行指定的代码。

不如本例中的

setTimeout(anim, o.speed);

也许你有看过类似的写法:

function dosomething(){
    // do something
}
setTimeOout('dosomething',1000);

个人建议不要这么写,是这样的代码的可读性太差,虽然也可以正常执行。相信你看到的类似的代码也是很久前的东西了。如果你还在新买的某本书中看到这样的写法,我想你可能很不幸买了本烂书。现在一般我们都这么做:

function whatWeDoNow(){
    var str = 'this is what we do now';
    if(doalert) {
       clearTimeout(doalert)
    }  
    var doalert = setTimeout(function(){
       alert(str);
    },1000);
}

而且不知道你发现没有,这么写还有一个好处,你的function还可以接受其他的参数,比如这里我们可以接受whatWeDoNow()函数中的局部变量。如果你再结合闭包的使用,好处会更显而易见。

刚才说的一点应该说是一个不好的使用setTimeout的习惯。呵呵,接下来我还要说的一个更不好的使用习惯就是只使用setTimeout()方法,而不使用clearTimeout()方法。

clearTimeout(itimeoutid)

clearTimeout()方法的功能是停止定时器,大家看上面的代码:

clearTimeout(o.scrollTimer);

Timer(定时器),够直接吧。那么为什么要停止定时器?什么时候停止呢?

为什么要停,我想用个反问:能一直不停吗,你的机器受得了吗?这里我想应该说说我们使用setTimeout的目的,我们通常使用它来实现像本例这样的动画效果。需要在很短的时间内连续不断的执行定时器,当然它是要占资源的啊。想想,只是不断的创建,而且往往我们做的处理,在1秒中内会执行很多次函数,一两次还好,上百上千次,而且一个复杂些的动画,执行很短的时间内几万次也不是没有可能事情。你想想,如果我们不在每执行完一次后,销毁它。要是再加上定时器执行的函数又是个比较NB点的运算,你的宝贵的系统资源...,呵呵!

所以应该向我给的例子中那样,记得在每次执行了定时器后停止(销毁,释放资源)它。

function whatWeDoNow(){
    var str = 'this is what we do now';
    if(doalert) {
       clearTimeout(doalert); // clear
    }  
    var doalert = setTimeout(function(){
       alert(str);
    },1000);
}
if (o.scrollTimer) {
    clearTimeout(o.scrollTimer); // clear
}

呵呵,其实销毁的方法很简单,就是在每次创建定时器前,判断是否已经创建了订时器,就像特效例子中的

if (o.scrollTimer) {
    clearTimeout(o.scrollTimer); // clear
}
....
....
if (o.scrollHeight % s_area.offsetHeight == 0) {
    o.scrollTimer = setTimeout(anim, o.speed);
}
else {
    o.scrollTimer = setTimeout(anim, 10);
}

逻辑就是:

是不是一个很流畅的循环?现在大家应该知道了,为什么要clearTimeout和何时clearTimeout了吗?

介绍了大半天的setTimeout和clearTimeout,呵呵,现在可以看看怎么使用这个特效吧,页面代码:

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">











分享到:
评论

相关推荐

    不间断滚动图片Javascript特效讲解

    1. **基本结构**:一个简单的图片滚动特效通常包括HTML结构、CSS样式和JavaScript代码三部分。HTML负责布局和内容,CSS用于美化,JavaScript则用来控制动态行为。 2. **HTML布局**:HTML中,我们需要创建一个包含...

    不间断图片滚动代码

    本篇文章将详细探讨如何利用JavaScript实现不间断图片滚动代码。 首先,我们需要理解JavaScript的基础知识。JavaScript是一种解释型、跨平台的编程语言,主要用于网页和网络应用。它主要负责处理用户交互、动态内容...

    图片不间断滚动

    3. js:这可能是包含JavaScript代码的文件夹,用于实现图片滚动的逻辑,比如切换图片、控制动画速度、响应用户交互等。JavaScript代码可能包括对DOM的操作,使用定时器实现自动切换,以及添加过渡效果以提升视觉体验...

    不间断 滚动图片 滚动文字

    在IT行业中,"不间断滚动图片"和"滚动文字"是一种常见的网页动态效果,常用于新闻网站、广告展示或产品介绍等场景。这种效果能够吸引用户的注意力,提高信息的传播效率。接下来,我们将深入探讨实现这些效果的技术...

    文字图片不间断滚动

    不间断滚动 支持鼠标经过停止 文字图片不间断向下 向上滚动

    图片不间断向左滚动,js图片向左不间断滚动

    `setInterval`函数会在指定的时间间隔(这里是3000毫秒,即3秒)调用`scroll`函数,从而实现不间断的图片滚动效果。 为了增强用户体验,我们还可以添加一些额外功能,如自动暂停滚动当鼠标悬停在滑动区域上,以及...

    图片不间断滚动,当鼠标移上停止,鼠标离开继续滚动

    图片不间断滚动,当鼠标移上停止,鼠标离开继续滚动

    不间断滚动图片特效打包下载

    在IT行业中,图片滚动特效是一种常见的视觉展示手法,尤其在网站设计、移动应用以及广告展示等领域广泛应用。"不间断滚动图片特效"通常指的是一个能够自动循环播放一组图片的效果,这种效果可以增强用户的交互体验,...

    图片上下左右不间断滚动代码

    网页中图片的不间断上下左右滚动,下载下来改成HTML文件,插入网页内部,把图片改成自己的就行了

    推荐通用文字图片JS不间断滚动封装类 代替Marquee

    在这个案例中,封装类可能包含了处理文字和图片滚动的逻辑,如初始化、设置滚动速度、方向控制等。 接着,我们来探讨"不间断滚动"。这是一种常见的动态效果,可以使得文字或图片在页面上持续地从一端移动到另一端,...

    Marquee Scroll通用不间断滚动JS封装类

    Marquee Scroll通用不间断滚动JS封装类是一种常见的JavaScript技术,用于实现网页元素的自动滚动效果,常见于新闻滚动、公告栏等场景。这类封装类的主要目的是简化开发者的工作,提供一种便捷的方式来实现不同方向...

    滚屏(图片不间断滚动)通用不间断滚动JS封装类

    综上所述,"滚屏(图片不间断滚动)通用不间断滚动JS封装类"项目涵盖了从基本的图片滚动原理到高级的优化策略,为开发者提供了一套完整的解决方案,使得在网页中实现图片不间断滚动变得简单高效。

    js图片不间断滚动代码

    ### 不间断图片滚动效果实现方法 在网页设计与开发领域中,为了增强用户体验和页面交互性,常常会使用各种动态效果。其中,“js图片不间断滚动代码”是一种常见且实用的功能,它可以让一系列图片在页面上自动连续...

    图片 文字 不间断 滚动

    图片文字不间断滚动,图片文字不间断滚动,图片文字不间断滚动,图片文字不间断滚动

    js水平滚动永不间断的广告特效

    js水平滚动永不间断的广告特效js水平滚动永不间断的广告特效

    Javascript实现图片不间断滚动的代码_.docx

    【JavaScript实现图片不间断滚动的代码】是用于在网页上创建一个自动滚动的图片展示效果的JavaScript函数。这个功能常用于网站的广告轮播或者图片展示区,能够使用户无需手动操作就能浏览多张图片。以下是该代码的...

    不间断无缝滚动图片

    在网页设计中,"不间断无缝滚动图片"是一种常见的视觉效果,它通过JavaScript或者CSS3等技术实现,使得图片能够连续不断地、平滑地从一端滚动到另一端,给人一种连贯且无中断的视觉体验。这种效果常用于网站的轮播图...

    JS封装的滚动类,文字图片不间断滚动代码大全.rar

    一个可以代替Marquee走马灯特效的图片滚动封装类,它可控制图片做无缝循环滚动,可以在上下左右四个方面滚动,而且具备丰富自定义设置功能。它的特点: 横向、纵向滚动格式调整 (解决横向滚动换行的问题,无需特殊...

    不间断图片左右滚动代码演示

    【标题】:“不间断图片左右滚动代码演示”是一个关于JavaScript(JS)实现的动态图片滚动效果的实例。在网页设计中,这种效果常用于展示产品、新闻或者广告,以吸引用户的注意力并提供良好的用户体验。 【描述】:...

    不间断滚动图片JS代码

    1. 鼠标移动方向改变:当鼠标移到滚动图片区域时,如果用户的鼠标向左移动,图片滚动方向可能变为向左;如果鼠标向右移动,图片则向右滚动。这种互动性增加了用户体验。 2. 鼠标悬停停止:当鼠标停留在图片上时,...

Global site tag (gtag.js) - Google Analytics