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 相关文章推荐
jQuery 方法大全方便学习参考
Feb 25 Javascript
AngularJS实现表单验证
Jan 28 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
javascript 操作cookies详解及实例
Feb 22 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
Vue代码分割懒加载的实现方法
Nov 23 Javascript
Bootstrap模态对话框中显示动态内容的方法
Aug 10 Javascript
vue--vuex详解
Apr 15 Javascript
vue使用axios实现excel文件下载的功能
Jul 16 Javascript
vue实现简易的双向数据绑定
Dec 29 Vue.js
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 Javascript
vue实现倒计时功能
Mar 24 Vue.js
页面调用单个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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
php中对2个数组相加的函数
2011/06/24 PHP
PHP之预定义接口详解
2015/07/29 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python正则表达式完全指南
2017/05/25 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
中学教师岗位职责
2013/11/26 职场文书
检查接待方案
2014/02/27 职场文书
教师师德演讲稿
2014/05/06 职场文书
核心价值观演讲稿
2014/05/13 职场文书
义和团口号
2014/06/17 职场文书
公司离职证明标准范本
2014/10/05 职场文书
出生公证书
2015/01/23 职场文书
论文答辩开场白大全
2015/05/27 职场文书
生产设备维护保养制度
2015/08/06 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers