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


Posted in Javascript onNovember 21, 2011

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

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

<html> 
<head> 
<link href="http://news.qq.com/base2011/css/qq.css" rel="stylesheet" type="text/css"> 
<style> 
.turn 
{ 
height: 212px; 
float: left; 
overflow: hidden; 
position: relative; 
} 
.turn #adpica 
{ 
width: 382px; 
height: 210px; 
overflow: hidden; 
} 
.turn #adpica img 
{ 
width: 380px; 
height: 210px; 
float: left; 
overflow: hidden; 
} 
.turn #adtipa 
{ 
height: 16px; 
position: absolute; 
right: 8px; 
bottom: 8px; 
} 
.turn #adtipa ul li 
{ 
width: 19px; 
height: 19px; 
line-height: 19px; 
float: left; 
text-align: center; 
display: inline; 
margin: 0 1px; 
cursor: pointer; 
color: #fff; 
background: #000; 
} 
.turn #adtipa ul li.current 
{ 
color: #fff; 
background: #cc0000; 
} 
.turn .hidden 
{ 
display: none; 
} 
.turn .show 
{ 
display: block !important; 
} 
#adpica span 
{ 
position: absolute; 
bottom: 0; 
left: 0; 
color: #fff; 
font-size: 14px; 
height: 33px; 
width: 380px; 
filter: alpha(opacity=70); 
opacity: 0.7; 
background: #000; 
text-indent: -9999em; 
} 
#adpica p 
{ 
position: absolute; 
bottom: 0; 
left: 0; 
color: #fff; 
font-size: 14px; 
height: 33px; 
line-height: 33px; 
width: 285px; 
padding-left: 5px; 
font-weight: bold; 
} 
</style> 
</head> 
<body> 
<div class="focus"> 
<!--focus--> 
<div class="turn"> 
<div id="adpica"> 
<div class="show"> 
<a href="/a/20111119/000002.htm"> 
<img width="380" height="210" src="http://img1.gtimg.com/gd/pics/hv1/11/6/909/59109266.jpg"></a><span>焦点图文字背景</span><p 
href="/a/20111119/000002.htm"> 
广州花都拆违遭遇碎瓶煤气罐</p> 
<!--[if !IE]>|xGv00|9f7171a0d436636945e9c21690c2ece8<![endif]--> 
</div> 
<div style="display: none;" class="hidden"> 
<a href="/a/20111119/000028.htm"> 
<img width="380" height="210" src="http://img1.gtimg.com/gd/pics/hv1/205/26/909/59114560.jpg"></a><span>焦点图文字背景</span><p 
href="/a/20111119/000028.htm"> 
一颗“钉子”放弃工作保祖屋5年</p> 
<!--[if !IE]>|xGv00|d23979cbd54ef39a84fe343a81550dff<![endif]--> 
</div> 
<div class="hidden" style="display: none;"> 
<a href="/a/20111117/000250.htm"> 
<img width="380" height="210" src="http://img1.gtimg.com/gd/pics/hv1/68/53/908/59056283.jpg"></a><span>焦点图文字背景</span><p 
href="/a/20111117/000250.htm"> 
爸爸,不要把我丢下</p> 
<!--[if !IE]>|xGv00|93b927379aeaca72b86d66dbb2e57614<![endif]--> 
</div> 
<div class="hidden" style="display: none;"> 
<a href="/a/20111119/000004.htm"> 
<img width="380" height="210" src="http://img1.gtimg.com/gd/pics/hv1/243/9/909/59110263.jpg"></a><span>焦点图文字背景</span><p 
href="/a/20111119/000004.htm"> 
杨幂最新杂志写真 魅惑优雅</p> 
<!--[if !IE]>|xGv00|ca04e9980d08c91f55db9ea4ee64489c<![endif]--> 
</div> 
</div> 
<div id="adtipa"> 
<ul onmouseout="change()"> 
<li class="current" onmouseover="adchangea(1)">1 </li> 
<li class="" onmouseover="adchangea(2)">2 </li> 
<li class="" onmouseover="adchangea(3)">3 </li> 
<li class="" onmouseover="adchangea(4)">4</li></ul> 
</div> 
<script> 
//鼠标移过来的动作。显示当前图片,清除轮询。 
function adchangea(adid) { 
dochange(adid); 
clearTimeout(adisround); 
} 
//自动轮询 
function adchangea2(adid) { 
dochange(adid); 
var adbigimg = document.getElementById("adpica").getElementsByTagName("div"); 
if ((adnext = adid + 1) > adbigimg.length) adnext = 1; 
adisround = setTimeout('adchangea2(' + adnext + ')', 3000); 
} 
//显示当前图片 
function dochange(adid) { 
id = adid; 
var adbigimg = document.getElementById("adpica").getElementsByTagName("div"); 
var adsmallimg = document.getElementById("adtipa").getElementsByTagName("li"); 
for (var adi = 0; adi < adbigimg.length; adi++) { 
adbigimg[adi].className = "hidden"; 
adsmallimg[adi].className = ""; 
} 
adbigimg[adid - 1].className = "show"; 
adsmallimg[adid - 1].className = "current"; 
} 
var adisround = setTimeout("adchangea2(2)", 3000); 
var id;//当前激活id 
//鼠标移开ul块时,恢复轮询 
function change() { 
adchangea2(id); 
} 
</script> 
</div> 
<!--[if !IE]>|xGv00|495624c0694083cdfaabbc0457f4f14e<![endif]--> 
<!--/focus--> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
Dec 27 Javascript
JScript内置对象Array中元素的删除方法
Mar 08 Javascript
JavaScript中String和StringBuffer的速度之争
Apr 01 Javascript
JavaScript常用全局属性与方法记录积累
Jul 03 Javascript
js写的方法实现上传图片之后查看大图
Mar 05 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
微信小程序 页面跳转事件绑定的实例详解
Sep 20 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
layui select动态添加option的实例
Mar 07 Javascript
webpack-mvc 传统多页面组件化开发详解
May 07 Javascript
JS浮点数运算结果不精确的Bug解决
Aug 01 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 #Javascript
javascript中xml操作实现代码
Nov 21 #Javascript
js调用activeX获取u盘序列号的代码
Nov 21 #Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 #Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
Nov 21 #Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
Nov 19 #Javascript
ToolTips JQEURY插件之简洁小提示框效果
Nov 19 #Javascript
You might like
PHP时间格式控制符对照表分享
2013/07/23 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
用vue 实现手机触屏滑动功能
2020/05/28 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
用python实现名片管理系统
2020/06/18 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
python 基于opencv去除图片阴影
2021/01/26 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
三个Unix的命令面试题
2015/04/12 面试题
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python