jquery循环插件、嵌套幻灯片和#x27;在'之后;第一个和最后一个图像的选项或测试
在嵌套幻灯片中,我有“上一页”和“下一页”控件。如果您在第一张幻灯片上,我希望能够降低css的不透明度“prev”,如果您在最后一张幻灯片上,我希望能够降低css的不透明度“next” “after:onAfter”选项本来就足够了,但在我的代码中放置嵌套幻灯片控件时,它似乎不起作用 有没有办法在嵌套幻灯片中正确实现“after”,或者在嵌套幻灯片中测试第一个和最后一个图像?谢谢 这是我的密码jquery循环插件、嵌套幻灯片和#x27;在'之后;第一个和最后一个图像的选项或测试,jquery,plugins,jquery-plugins,cycle,jquery-cycle,Jquery,Plugins,Jquery Plugins,Cycle,Jquery Cycle,在嵌套幻灯片中,我有“上一页”和“下一页”控件。如果您在第一张幻灯片上,我希望能够降低css的不透明度“prev”,如果您在最后一张幻灯片上,我希望能够降低css的不透明度“next” “after:onAfter”选项本来就足够了,但在我的代码中放置嵌套幻灯片控件时,它似乎不起作用 有没有办法在嵌套幻灯片中正确实现“after”,或者在嵌套幻灯片中测试第一个和最后一个图像?谢谢 这是我的密码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript" src="http://malsup.github.com/jquery.cycle.all.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// init and stop the inner slideshows
var inners = $('.inner-slideshow').cycle().cycle('stop');
var slideshow = $('#slideshow').cycle({
fx: 'fade',
speed: 'fast',
timeout: 0,
pager: '#nav',
pagerAnchorBuilder: function(idx, slide) {
// return sel string for existing anchor
return '#nav li:eq(' + (idx) + ') a';
},
before: function() {
// stop all inner slideshows
inners.cycle('stop');
// start the new slide's slideshow
$(this).cycle({
fx: 'scrollHorz',
speed: 'fast',
timeout: 0,
prev: '#prev',
next: '#next',
nowrap: 1
});
}
});
});
</script>
<title>dev</title>
</head>
<body>
<ul id="nav">
<li><a href="#">Top Slidehsow 1</a></li>
<li><a href="#">Top Slidehsow 2</a></li>
</ul>
<div id="controls">
<a id="prev" href="#">< Prev</a>
<a id="next" href="#">Next ></a>
</div>
<div id="slideshow">
<div class="inner-slideshow">
<img src="http://cloud.github.com/downloads/malsup/cycle/beach1.jpg" width="200" height="200">
<img src="http://cloud.github.com/downloads/malsup/cycle/beach2.jpg" width="200" height="200">
</div>
<div class="inner-slideshow">
<img src="http://cloud.github.com/downloads/malsup/cycle/beach4.jpg" width="200" height="200">
<img src="http://cloud.github.com/downloads/malsup/cycle/beach5.jpg" width="200" height="200">
<img src="http://cloud.github.com/downloads/malsup/cycle/beach6.jpg" width="200" height="200">
</div>
</div>
</body>
</html>
$(文档).ready(函数(){
//初始化并停止内部幻灯片放映
var inners=$('.inner slideshow').cycle().cycle('stop');
var slideshow=$('#slideshow')。循环({
外汇:“淡出”,
速度:“快”,
超时:0,
寻呼机:“#导航”,
pagerAnchorBuilder:函数(idx、幻灯片){
//返回现有锚点的sel字符串
返回“#nav li:eq(+(idx)+”)a”;
},
before:function(){
//停止所有内部幻灯片放映
内部循环(“停止”);
//开始新幻灯片的幻灯片放映
美元(本周)({
fx:‘滚动人’,
速度:“快”,
超时:0,
上一页:“#上一页”,
下一个:“#下一个”,
nowrap:1
});
}
});
});
发展
了解您正在使用的插件会很有帮助,但大多数滑块插件都有一个参数,您可以向其中添加函数,每次实际滑动发生时都会调用该参数,比如“onChange”。如果这个插件有这样一个特性,那么您可以使用一些简单的Javascript来直接操作CSS或元素,或者向它们添加一个类来允许您在CSS中操作它们
因此,您需要知道当前的索引—看起来“idx”可能提供了这一点,然后您可以执行类似(伪代码)的操作
其中“currentSlideNumber”是当前索引,slides.length统计幻灯片的数量-在Javascript中为:
$('.inner-slideshow').children('img').length
我想这就是你想要的(编辑了你的例子): 添加了css不透明性和jquery和cycle脚本链接,效果很好
您好,Michael查看选项页面后的选项:'看起来可以让您将上述代码添加到页面中,有意义吗?嗨,汤姆,谢谢,是的,有意义。我应该更仔细地研究“之后”选项。我没有注意到,除了传递预定义的值,还可以为它编写函数。在玩了各种各样的选项之后(请看小提琴),我无法让你的代码有两个幻灯片并在它们之间切换。嗨,很抱歉,我看了你的链接。我已经将问题中的代码从片段更新到了整个页面,应该可以正常工作。
$('.inner-slideshow').children('img').length
$(document).ready(function() {
// init and stop the inner slideshows
var inners = $('.inner-slideshow').cycle().cycle('stop');
var slideshow = $('#slideshow').cycle({
fx: 'fade',
speed: 'fast',
timeout: 0,
pager: '#nav',
pagerAnchorBuilder: function(idx, slide) {
// return sel string for existing anchor
return '#nav li:eq(' + (idx) + ') a';
},
before: function() {
// stop all inner slideshows
inners.cycle('stop');
// start the new slide's slideshow
$(this).cycle({
fx: 'scrollHorz',
speed: 'fast',
timeout: 0,
prev: '#prev',
next: '#next',
nowrap: 1,
after: function() {
$('#prev').removeClass('opac');
$('#next').removeClass('opac');
var countImg = $(this).siblings().size();
if ($(this).index() == 0) $('#prev').addClass('opac');
if ($(this).index() == countImg) $('#next').addClass('opac');
}
});
}
});
});