Heim  >  Artikel  >  Web-Frontend  >  js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来_javascript技巧

js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来_javascript技巧

WBOY
WBOYOriginal
2016-05-16 17:59:111392Durchsuche

背景
我所想要的完美图片新闻轮转效果:
1.有新闻图片,有新闻标题,有轮转索引
2.鼠标未移到索引上,图片自动切换
3.鼠标移到索引上,显示现有图片,轮询停止
4.鼠标移开索引, 轮询继续
5.简洁明了,轻量级 (不依赖第三方任何文件,最好是原生js)

过程
找过很多图片轮询效果,和我的要求总是有些出入,不能十全十美。不是功能不全,就是太多花哨。本想自己开发一个,鉴于琐事拖延,迟迟未能开始。
偶尔看到 腾讯大粤网 的图片新闻,感觉就是我所想要的效果。但仔细试验,发现其不符合要求3。即没有轮询停止机制。想想还是自己改造一下,就和自己的要求差不多了。
思路:页面加载,图片开始轮询。鼠标移到索引,显示相关图片,清除轮询。鼠标移开索引,恢复轮询。
定义一个全局的变量id,来记录当前激活的图片索引id。每次轮转时,更新这个id。鼠标移开索引后,用这个id开始轮询。

复制代码 代码如下:













js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来_javascript技巧
焦点图文字背景

href="/a/20111119/000002.htm">
广州花都拆违遭遇碎瓶煤气罐










  • 1

  • 2

  • 3

  • 4


<script> <BR>//鼠标移过来的动作。显示当前图片,清除轮询。 <BR>function adchangea(adid) { <BR>dochange(adid); <BR>clearTimeout(adisround); <BR>} <BR>//自动轮询 <BR>function adchangea2(adid) { <BR>dochange(adid); <BR>var adbigimg = document.getElementById("adpica").getElementsByTagName("div"); <BR>if ((adnext = adid + 1) > adbigimg.length) adnext = 1; <BR>adisround = setTimeout('adchangea2(' + adnext + ')', 3000); <BR>} <BR>//显示当前图片 <BR>function dochange(adid) { <BR>id = adid; <BR>var adbigimg = document.getElementById("adpica").getElementsByTagName("div"); <BR>var adsmallimg = document.getElementById("adtipa").getElementsByTagName("li"); <BR>for (var adi = 0; adi < adbigimg.length; adi++) { <BR>adbigimg[adi].className = "hidden"; <BR>adsmallimg[adi].className = ""; <BR>} <BR>adbigimg[adid - 1].className = "show"; <BR>adsmallimg[adid - 1].className = "current"; <BR>} <BR>var adisround = setTimeout("adchangea2(2)", 3000); <BR>var id;//当前激活id <BR>//鼠标移开ul块时,恢复轮询 <BR>function change() { <BR>adchangea2(id); <BR>} <BR></script>






Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn