`
ice-cream
  • 浏览: 331925 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

js图片轮换效果(一)

阅读更多
常常在各大网站上看到如下图所示的图片轮换效果,有的是用flash做的,有的是用js做的。

我就google一下,发现用js写的图片轮换效果例子是不少,可惜要么太繁琐,要么连页面都打不开

于是自己试了试,写了一个,代码很少。



js如下:

$(document).ready(function(){	
	$(".clickButton a").attr("href","javascript:return false;");
	$(".clickButton a").each(function(index){			
		$(this).click(function(){
			changeImage(this,index);	
		});			
	});	
	autoChangeImage();		
});

function autoChangeImage(){
	for(var i = 0; i<=10000;i++){
		window.setTimeout("clickButton("+(i%5+1)+")",i*3000);			
	}
}

function clickButton(index){
	$(".clickButton a:nth-child("+index+")").click();
}

function changeImage(element,index){
	var arryImgs = ["images/01.jpg","images/02.jpg","images/03.jpg","images/04.jpg","images/05.jpg"];
	$(".clickButton a").removeClass("active");
	$(element).addClass("active");
	$(".imgs img").attr("src",arryImgs[index]);
}


鼠标停留版(参考malk的js改写的):
$(document).ready(function(){
	var arryImgs = ["images/01.jpg","images/02.jpg","images/03.jpg","images/04.jpg","images/05.jpg"];
	$(".clickButton a").attr("href","javascript:return false;"); 
	var times = 1;
	function changeImage(){
		if (times == 6) {
			times = 1;
		}
		$(".clickButton a").removeClass("active");
		$(".clickButton a:nth-child(" + times + ")").addClass("active");
		$(".imgs img").attr("src",arryImgs[times-1]);
		times++;
	}
	var interval = window.setInterval(function(){
		changeImage();
	}, 1500);
	$(".clickButton a").each(function(index){
		$(this).hover(
			function(){
				$(".clickButton a").removeClass("active");
				$(this).addClass("active");
				clearInterval(interval);
				$(".imgs img").attr("src",arryImgs[index]);
				times = index+1;	
			},
			function(){
				interval = window.setInterval(function(){
					changeImage();
				}, 1500);	
			}); 
	});
})  

  • 大小: 54.4 KB
分享到:
评论
18 楼 zhouky4665 2009-01-09  
我刚弄了一个,跟楼主的差不多!
17 楼 ice-cream 2009-01-08  
myyate 写道
提个建议:一般我随机点击某个button,后面自动变换应该是刚刚点击button后一个。
比如,我点击了【4】,那么自动跳转应该从【5】开始,而你这个是各变各的。

你看的是以前的版本,而你要的效果是应该看我修改后的"display_imgs_鼠标停留版_.zip"这个文件,或者看楼上ninecat同学的
16 楼 myyate 2009-01-08  
提个建议:一般我随机点击某个button,后面自动变换应该是刚刚点击button后一个。
比如,我点击了【4】,那么自动跳转应该从【5】开始,而你这个是各变各的。
15 楼 InnocentBoy 2009-01-08  
这么勤学的MM,支持下。
14 楼 wazhyu 2009-01-08  
正好需要。谢谢楼主和大家的分享。
13 楼 srdrm 2009-01-08  
哇塞,太佩服大家了! 赞一个!

大家可以做一个插件出来吗?? jquery 插件哦. 这样不是更模块化吗

有空我弄一个, 看今天的工作完成情况
12 楼 ninecat 2009-01-08  
<p>在ice-cream 的基础上修改了下,鼠标悬停在图片上停止轮换</p>
<pre name='code' class='Javascript'>&lt;script language="JavaScript" type="text/javascript"&gt;
$(document).ready(function(){
var arryImgs = ["images/01.jpg","images/02.jpg","images/03.jpg","images/04.jpg","images/05.jpg"];
$(".clickButton a").attr("href","javascript:return false;");
var times = 1;
function changeImage(){
if (times == 6) {
times = 1;
}
$(".clickButton a").removeClass("active");
$(".clickButton a:nth-child(" + times + ")").addClass("active");
$(".imgs img").attr("src",arryImgs[times-1]);
times++;
}
var interval = window.setInterval(function(){
changeImage();
}, 1500);
$(".imgs img").hover(
function(){
clearInterval(interval);
},
function(){
interval = window.setInterval(function(){
changeImage();
}, 1500);
});
$(".clickButton a").each(function(index){
$(this).hover(
function(){
$(".clickButton a").removeClass("active");
$(this).addClass("active");
clearInterval(interval);
$(".imgs img").attr("src",arryImgs[index]);
times = index+1;
},
function(){
interval = window.setInterval(function(){
changeImage();
}, 1500);
});
});
}) 
&lt;/script&gt;
</pre>
<p> </p>
11 楼 ice-cream 2009-01-07  
把malk的js实现改写成jquery了,见主贴。
10 楼 ice-cream 2009-01-03  
hanjs 写道

event = event ? event : window.event
这个是什么意思啊?

这样写是为了兼容浏览器,看看网上的解释
http://www.iteye.com/topic/47917?page=1
http://topic.csdn.net/u/20070725/10/38ecd6ed-9245-470e-9682-1f5ef3a5b037.html
9 楼 hanjs 2008-12-30  
还是ls的代码能看的懂,其他的看起来很费力。

event = event ? event : window.event
这个是什么意思啊?
8 楼 malk 2008-12-26  
焦点在数字上面图片还会轮换,我写了个纯JS版的,鼠标放上去后停止轮换。
  <script language="JavaScript" type="text/javascript">
    window.onload = function(){
        var array = ["01.jpg", "02.jpg", "03.jpg", "04.jpg", "05.jpg"];
        var times = 1;
        function changeIMG(){
            if (times == 5) {
                times = 0;
            }
            for (i = 0; i < document.getElementById("links").getElementsByTagName("A").length; i++) {
                document.getElementById("links").getElementsByTagName("A")[i].className = "";
            }
            document.getElementById("links").getElementsByTagName("A")[times].className = "active";
            document.getElementById("pic").src = array[times];
            times++;
        }
        
        var interval = window.setInterval(function(){
            changeIMG();
        }, 1500);
        document.getElementById("links").onmouseover = function(event){
            event = event ? event : window.event
            var obj = event.srcElement ? event.srcElement : event.target;
            if (obj.tagName == "A") {
                for (i = 0; i < document.getElementById("links").getElementsByTagName("A").length; i++) {
                    document.getElementById("links").getElementsByTagName("A")[i].className = "";
                }
                obj.className = "active";
                clearInterval(interval);
                document.getElementById("pic").src = array[Number(obj.innerHTML) - 1];
            }
        }
        document.getElementById("links").onmouseout = function(event){
            event = event ? event : window.event
            var obj = event.srcElement ? event.srcElement : event.target;
            if (obj.tagName == "A") {
                interval = window.setInterval(function(){
                    changeIMG();
                }, 1500);
            }
        }
    }

</script>

7 楼 lndalian2000 2008-12-17  
太厉害了啊.

学习一下.
6 楼 aficbl 2008-12-17  
可以再扩展一下,鼠标放上去后停止轮换。
5 楼 上一站,火星 2008-12-17  
以前在网上找的一种比较恶的实现

http://www.iteye.com/problems/6898
4 楼 QuakeWang 2008-12-16  
javaeye论坛首页左上角也有类似效果,是我自己基于prototype js土制的,直接用很暴力的方法set innerHTML了,抛砖一下,要考虑到重用的话,需要将这些var和function用面向对象的方式封装一下:
    var current_index = 0;
    var s_adverts = []; #html array here

    Event.observe(window,'load',function() {
      show_slide(0);
      new PeriodicalExecuter(show_slide, 10);
    });

    function show_slide(s_index) {
      if(typeof(s_index) != 'number') s_index = current_index + 1;
      if(s_index >= s_adverts.length) s_index = 0;
      
      $("slides").innerHTML = s_adverts[s_index];
      var s_pagination = s_adverts.inject("<span class='pagination'>", function(memo, value, i) {
        return memo + (s_index == i ? "<span class='current'>" + (i + 1) + "</span>" : "<a href='#' onclick='show_slide(" + i + ");return false;'>" + (i + 1) + "</a>");
      }) + "</span>";


      $("slides").insert(s_pagination);

      current_index = s_index;
    }
3 楼 ice-cream 2008-12-16  
fins 写道
ice啊 你真厉害啊 像你这么勤思考爱动手的mm程序员太少了
难怪 马丁叔叔那么欣赏你 

你太抬举我了,不用每次都夸奖我,呵呵。
我也是处在学习的阶段
2 楼 fins 2008-12-16  
ice啊 你真厉害啊 像你这么勤思考爱动手的mm程序员太少了
难怪 马丁叔叔那么欣赏你 
1 楼 xuyao 2008-12-16  
不错,不过那个js要放到后面,否在在ie8中要报错。可能是ie8加载的时候没有等到document加载后再ready。具体会包“return flase”在函数之外的错误。。。

相关推荐

    计算机二级公共基础知识模 拟试题及答案详解.pdf

    计算机二级公共基础知识模 拟试题及答案详解.pdf

    电子工程领域的语音发射机电路设计与实现

    内容概要:本文档详细介绍了语音发射机的设计与实现,涵盖了从硬件电路到具体元件的选择和连接方式。文档提供了详细的电路图,包括电源管理、信号处理、音频输入输出接口以及射频模块等关键部分。此外,还展示了各个引脚的功能定义及其与其他组件的连接关系,确保了系统的稳定性和高效性能。通过这份文档,读者可以全面了解语音发射机的工作原理和技术细节。 适合人群:对电子工程感兴趣的初学者、从事嵌入式系统开发的技术人员以及需要深入了解语音发射机制的专业人士。 使用场景及目标:适用于希望构建自己的语音发射设备的研究人员或爱好者,帮助他们掌握相关技术和实际操作技能。同时,也为教学机构提供了一个很好的案例研究材料。 其他说明:文档不仅限于理论讲解,还包括具体的实施步骤,使读者能够动手实践并验证所学知识。

    易语言注册机源码详解:单线程架构下的接码、滑块验证与IP代理实现

    内容概要:本文详细介绍了用易语言编写的单线程全功能注册机源码,涵盖了接码平台对接、滑块验证处理、IP代理管理以及料子导入等多个核心功能。文章首先展示了主框架的初始化配置和事件驱动逻辑,随后深入探讨了接码平台(如打码兔)的API调用及其返回数据的处理方法。对于滑块验证部分,作者分享了如何利用易语言的绘图功能模拟真实用户的操作轨迹,并提高了验证通过率。IP代理模块则实现了智能切换策略,确保代理的有效性和稳定性。此外,料子导入功能支持多种格式的数据解析和去重校验,防止脏数据污染。最后,文章提到了状态机设计用于控制注册流程的状态持久化。 适合人群:有一定编程基础,尤其是熟悉易语言的开发者和技术爱好者。 使用场景及目标:适用于希望深入了解易语言注册机开发的技术细节,掌握接码、滑块验证、IP代理等关键技术的应用场景。目标是帮助读者理解并优化现有注册机的功能,提高其稳定性和效率。 其他说明:文中提到的部分技术和实现方式可能存在一定的风险,请谨慎使用。同时,建议读者在合法合规的前提下进行相关开发和测试。

    计算机绘图实用教程 第三章.pdf

    计算机绘图实用教程 第三章.pdf

    计算机辅助设计—AutoCAD 2018中文版基础教程 各章CAD图纸及相关说明汇总.pdf

    计算机辅助设计—AutoCAD 2018中文版基础教程 各章CAD图纸及相关说明汇总.pdf

    计算机类电子书集合PDF

    C++相关书籍,计算机相关书籍,linux相关及http等计算机学习、面试书籍。

    计算机二级mysql数据库程序设计练习题(一).pdf

    计算机二级mysql数据库程序设计练习题(一).pdf

    计算机发展史.pdf

    计算机发展史.pdf

    计算机二级课件.pdf

    计算机二级课件.pdf

    计算机概论第三讲:计算机组成.pdf

    计算机概论第三讲:计算机组成.pdf

    端侧算力网络白皮书:6G时代终端算力资源高效利用与应用场景解析

    内容概要:本文档由中国移动通信集团终端有限公司、北京邮电大学、中国信息通信研究院和中国通信学会共同发布,旨在探讨端侧算力网络(TCAN)的概念、架构、关键技术及其应用场景。文中详细分析了终端的发展现状、基本特征和发展趋势,阐述了端侧算力网络的定义、体系架构、功能架构及其主要特征。端侧算力网络通过整合海量泛在异构终端的算力资源,实现分布式多级端侧算力资源的高效利用,提升网络整体资源利用率和服务质量。关键技术涵盖层次化端算力感知图模型、资源虚拟化、数据压缩、多粒度多层次算力调度、现场级AI推理和算力定价机制。此外,还探讨了端侧算力网络在智能家居、智能医疗、车联网、智慧教育和智慧农业等领域的潜在应用场景。 适合人群:从事通信网络、物联网、边缘计算等领域研究和开发的专业人士,以及对6G网络和端侧算力网络感兴趣的学者和从业者。 使用场景及目标:适用于希望深入了解端侧算力网络技术原理、架构设计和应用场景的读者。目标是帮助读者掌握端侧算力网络的核心技术,理解其在不同行业的应用潜力,推动端侧算力网络技术的商业化和产业化。 其他说明:本文档不仅提供了端侧算力网络的技术细节,还对其隐私与安全进行了深入探讨

    学习java的心得体会.docx

    学习java的心得体会.docx

    计算机二级考试(南开100题齐全).pdf

    计算机二级考试(南开100题齐全).pdf

    计算机二级C语言考试通关宝典:全面解析核心知识点与解题技巧

    内容概要:本文详细介绍了计算机二级C语言考试的内容和备考方法。首先概述了计算机二级考试的意义及其在计算机技能认证中的重要性,重点讲解了C语言的基础语法,包括程序结构、数据类型、运算符和表达式等。接着深入探讨了进阶知识,如函数、数组、指针、结构体和共用体的应用。最后分享了针对选择题、填空题和编程题的具体解题技巧,强调了复习方法和实战演练的重要性。 适合人群:准备参加计算机二级C语言考试的学生和技术爱好者。 使用场景及目标:①帮助考生系统地掌握C语言的核心知识点;②提供有效的解题策略,提高应试能力;③指导考生制定合理的复习计划,增强实战经验。 其他说明:本文不仅涵盖了理论知识,还提供了大量实例代码和详细的解释,有助于读者更好地理解和应用所学内容。此外,文中提到的解题技巧和复习建议对实际编程也有很大帮助。

    论文格式及要求.doc

    论文格式及要求.doc

    三菱FX3U与台达变频器RS485通信程序设置及应用实例

    内容概要:本文详细介绍了如何使用三菱FX3U PLC及其485BD通信板与四台台达VFD-M系列变频器进行通信的设置与应用。主要内容涵盖硬件连接注意事项、通信参数配置、RS指令的应用、CRC校验算法的实现以及频率给定和状态读取的具体方法。文中提供了多个实用的编程示例,展示了如何通过梯形图和结构化文本编写通信程序,并讨论了常见的调试技巧和优化建议。此外,还提到了系统的扩展性和稳定性措施,如增加温度传感器通信功能和应对电磁干扰的方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些熟悉三菱PLC和台达变频器的使用者。 使用场景及目标:适用于需要实现多台变频器联动控制的工业应用场景,旨在提高生产效率和系统可靠性。通过学习本文,读者可以掌握如何构建稳定的RS485通信网络,确保变频器之间的高效协同工作。 其他说明:本文不仅提供了详细的理论指导,还包括了许多来自实际项目的经验教训,帮助读者避免常见错误并提升编程技能。

    计算机服务规范.pdf

    计算机服务规范.pdf

    Discuz-X3.2-TC-UTF8.zip

    Discuz_X3.2_TC_UTF8.zip LNMP搭建安装包

    2023年房地产行业研究报告:缓解竣工下行加速的两大改革.pdf

    2023年房地产行业研究报告:缓解竣工下行加速的两大改革

    win32汇编环境,网络编程入门之十五

    win32汇编环境,网络编程入门之十五

Global site tag (gtag.js) - Google Analytics