我正在使用Jon Raasch的简单jQuery幻灯片脚本(http://jonraasch.com/blog/a-simple-jquery-slideshow),并想知道如何让用户点击图片去到下一个图像,同时保持幻灯片显示的自动播放模式。第一次尝试构建一个网站,所以我对源代码/ css / jquery有非常基础的知识。
我是否还要修改js文件和源代码?我该如何修改它? 如果有人能帮忙,我们将非常感激。
谢谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
的xmlns = “http://www.w3.org/1999/xhtml” &GT;
csutoras +联东
/ *** 简单的jQuery幻灯片脚本 由Jon Raasch(jonraasch.com)根据FreeBSD许可证发布:免费使用或修改,不对任何内容负责等。请链接 对我来说,如果你喜欢它:) *** / function slideSwitch(){ var $ active = $('#slideshow DIV.active');$(function(){ setInterval(“slideSwitch()”,5000); });if ( $active.length == 0 ) $active = $('#slideshow DIV:last'); // use this to pull the divs in the order they appear in the markup var $next = $active.next().length ? $active.next() : $('#slideshow DIV:first'); // uncomment below to pull the divs randomly // var $sibs = $active.siblings(); // var rndNum = Math.floor(Math.random() * $sibs.length ); // var $next = $( $sibs[ rndNum ] ); $active.addClass('last-active'); $next.css({opacity: 0.0}) .addClass('active') .animate({opacity: 1.0}, 1000, function() { $active.removeClass('active last-active'); }); }
/ * 设置宽度和高度以匹配您的图片** /
幻灯片放映{position:relative;高度:350像素;宽度:500px;保证金:0自动; }
幻灯片DIV {位置:绝对;顶部:0;左:0;的z-index:8;不透明度:0.0;身高:400px; background-color:#FFF;最小宽度:
100%; filter:alpha(opacity = 0); }
幻灯片DIV.active {
z-index:10; opacity:1.0; filter: alpha(opacity=100); }
幻灯片DIV.last-active {
z-index:9; }
幻灯片DIV IMG {身高:350px;显示:块;边界:0; margin-bottom:10px;宽度:500px; }
测试
info
Caption for image 1 </div> <div> <img src="../../Images/images/photo (9).jpg" alt="Slideshow Image 2" /></a> Caption for image 2 </div> <div> <img src="../../Images/images/photo (8).jpg" alt="Slideshow Image 3" /></a> Caption for image 3 </div> <div> <img src="../../Images/images/photo (7).jpg" alt="Slideshow Image 4" /></a> Caption for image 4 </div> </div>
关于
enter code here
答案 0 :(得分:0)
看起来他的布局只是执行slideSwitch()以前进到下一张幻灯片。但是,后台有一个正在运行的计时器;无限期地每5秒射击一次。您需要清除该超时并可能再次设置它。这是一般的想法:
// What you should already have:
$(function() {
setInterval( "slideSwitch()", 5000 );
});
// what you need to change it into:
var intervalID = ""; // keep track of the timeout going on in the background so you can cancel it
$(function() {
intervalID = setInterval( "slideSwitch()", 5000 );
});
// On any image that is clicked, execute the following
$("img").on("click", function() {
clearInterval(intervalID); // stop the current slideshow changes
slideSwitch(); // switch now
intervalID = setInterval( "slideSwitch()", 5000); // set up the next change
});
有关setInterval / clearInterval的详细说明,请参阅these discussions
更新:为了正确掌握您的内容,请务必阅读jQuery的文档。有很多非常好的教程,但jQuery's own page也很有用。如果您希望某些内容似乎没有被触发,请检查您的浏览器的“开发人员工具”(或Firefox的firebug安装)。您可以在代码中为javascript执行时设置断点,或者如果您想简单地测试一些内容,则可以在代码中执行javascript警报。
您可能需要在$(document).ready(function() {...}
中设置图片点击事件处理程序,以便它知道您的所有图片。 how jQuery works页面对于了解它能做什么/可以做什么非常有帮助。
// make sure the page has been fully loaded when the following executes
$(document).ready(function() {
// On any image that is clicked, execute the following
$("img").on("click", function() {
clearInterval(intervalID); // stop the current slideshow changes
slideSwitch(); // switch now
intervalID = setInterval( "slideSwitch()", 5000); // set up the next change
});
});
一定要开始熟悉api;你会发现.on()
在那里记录的内容,selectors,如何获得attributes of DOM elements,以及jQuery在javascript之上构建的所有其他内容。
很多阅读,但你会很高兴你花时间去理解你想要掌握的力量。