[英]Fancybox within Jquery Cycle Slide
我有一系列幻燈片,每個幻燈片都包含許多小縮略圖。 然后,這些將在燈箱中打開以顯示更大的圖像。
我正在使用Jquery Cycle和Fancybox實現此目的。 到目前為止,我無法打開燈箱的圖像。
我對jquery還是一個新手,所以任何幫助/技巧都很棒。 這是我正在整理的小型演示的代碼:
<!DOCTYPE html>
<html>
<head>
<!-- FANCY BOX -->
<link rel="stylesheet" href="/scripts/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
var $jq = jQuery.noConflict();
</script>
<script type="text/javascript" src="/scripts/fancybox/jquery.fancybox-1.3.4.pack.js"> </script>
<!-- JQUERY CYCLE -- >
<!-- include jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<!-- include Cycle plugin -->
<script type="text/javascript" src="https://raw.github.com/malsup/cycle/master/jquery.cycle.all.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
var titles = $('#cycleContainer div.item').find("h2").map(function() { return $(this).text(); });
// Code that uses jQuery's $ can follow here.
$('#cycleContainer').before('<div id="current_resident_nav"></li><ul id="pager"><li><h2>artists</h2></ul></div>').cycle({
//Specify options
fx: 'scrollLeft', //Name of transition effect
timeout: 0, //Disable auto advance
pager: '#pager', //Selector for element to use as pager container
pagerAnchorBuilder: function (index) { //Build the pager
return '<li><p class="artists"><a href="#">' + titles[index] + '</p></a></li>';
},
updateActivePagerLink: function(pager, currSlideIndex) {
$(pager).find('li').removeClass('active').filter('li:eq('+currSlideIndex+')').addClass('active');
}
});
});
</script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$jq("a[rel=example_group]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'titlePosition' : 'over',
'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
}
});
});
</script>
<title>Tech Demo</title>
</head>
<body>
<div id="cycleContainer" style="z-index: -100;">
<div class="item">
<div id="current_resident_content" style="border:1px solid black; width: 960px; height: 500px;">
<div id="current_resident_images">
<div class="current_resident_img"><a class="example_group" rel="group1" href="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg"><img src="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg" width=100 height=100 /></a></div>
<div class="current_resident_img"><img src="http://www.newyorker.com/online/blogs/alpha/test/test-thumb-100x100.jpg" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-3}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-4}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-5}" width=100 height=100 /></div>
</div><br />
<div id="current_resident_bio">
<h2>This is a test</h2>
<p>Lorem Ipsum blah blah blah</p>
</div>
</div>
</div>
<div class="item">
<div id="current_resident_content" style="border:1px solid black; width: 960px; height: 500px;">
<div id="current_resident_images">
<div class="current_resident_img"><img src="http://www.fmwconcepts.com/misc_tests/caption_test/1tmp_6819.gif" width=100 height=100 /></div>
<div class="current_resident_img"><img src="http://www.nasa.gov/centers/marshall/images/content/99076main_DSCF8603_t.jpg" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-3}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-4}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-5}" width=100 height=100 /></div>
</div><br />
<div id="current_resident_bio">
<h2>This is a test</h2>
<p>Lorem Ipsum blah blah blah</p>
</div>
</div>
</div>
<script>
$("a.grouped_elements").fancybox();
</script>
好吧,我無法測試完整的代碼,但是我注意到一些不適當的地方或錯誤的地方。
我無法使用您當前擁有的src在測試頁上訪問循環插件,因此我將其更改為非https網址。
另外,您在示例代碼的末尾調用:
$("a.grouped_elements").fancybox();
不存在。 您沒有帶有“ grouped_elements”類的“ a”元素,因此返回錯誤。
下面是我用來使其在本地工作的代碼。 事先為格式道歉。
<!DOCTYPE html>
<html>
<head>
<!-- FANCY BOX -->
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fancybox/1.3.4/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
var $jq = jQuery.noConflict();
</script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/fancybox/1.3.4/jquery.fancybox-1.3.4.pack.js"> </script>
<!-- JQUERY CYCLE -- >
<!-- include jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<!-- include Cycle plugin -->
<script type="text/javascript" src="http://malsup.github.io/jquery.cycle.all.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
var titles = $('#cycleContainer div.item').find("h2").map(function() { return $(this).text(); });
// Code that uses jQuery's $ can follow here.
$('#cycleContainer').before('<div id="current_resident_nav"></li><ul id="pager"><li> <h2>artists</h2></ul></div>').cycle({
//Specify options
fx: 'scrollLeft', //Name of transition effect
timeout: 0, //Disable auto advance
pager: '#pager', //Selector for element to use as pager container
pagerAnchorBuilder: function (index) { //Build the pager
return '<li><p class="artists"><a href="#">' + titles[index] + '</p></a></li>';
},
updateActivePagerLink: function(pager, currSlideIndex) {
$(pager).find('li').removeClass('active').filter('li:eq('+currSlideIndex+')').addClass('active');
}
});
});
</script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$jq("a[rel=example_group]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'titlePosition' : 'over',
'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
}
});
});
</script>
<title>Tech Demo</title>
</head>
<body>
<div id="cycleContainer" style="z-index: -100;">
<div class="item">
<div id="current_resident_content" style="border:1px solid black; width: 960px; height: 500px;">
<div id="current_resident_images">
<div class="current_resident_img"><a class="example_group" rel="group1" href="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg"><img src="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg" width=100 height=100 /></a></div>
<div class="current_resident_img"><img src="http://www.newyorker.com/online/blogs/alpha/test/test-thumb-100x100.jpg" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-3}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-4}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-5}" width=100 height=100 /></div>
</div><br />
<div id="current_resident_bio">
<h2>This is a test</h2>
<p>Lorem Ipsum blah blah blah</p>
</div>
</div>
</div>
<div class="item">
<div id="current_resident_content" style="border:1px solid black; width: 960px; height: 500px;">
<div id="current_resident_images">
<div class="current_resident_img"><img src="http://www.fmwconcepts.com/misc_tests/caption_test/1tmp_6819.gif" width=100 height=100 /></div>
<div class="current_resident_img"><img src="http://www.nasa.gov/centers/marshall/images/content/99076main_DSCF8603_t.jpg" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-3}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-4}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-5}" width=100 height=100 /></div>
</div><br />
<div id="current_resident_bio">
<h2>This is a test</h2>
<p>Lorem Ipsum blah blah blah</p>
</div>
</div>
</div>
</div>
</body>
</html>
經過一番嘗試之后,最終的解決方案最終是將幻燈片的z-index設置為負數的問題。 最終代碼如下所示:
<!DOCTYPE html>
<html>
<head>
<!-- FANCY BOX -->
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/fancybox/1.3.4/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
var $jq = jQuery.noConflict();
</script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/fancybox/1.3.4/jquery.fancybox-1.3.4.pack.js"> </script>
<!-- JQUERY CYCLE -->
<!-- include jQuery library -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<!-- include Cycle plugin -->
<script type="text/javascript" src="http://malsup.github.io/jquery.cycle.all.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($) {
var titles = $('#cycleContainer div.item').find("h2").map(function() { return $(this).text(); });
// Code that uses jQuery's $ can follow here.
$('#cycleContainer').before('<div id="current_resident_nav"></li><ul id="pager"><li> <h2>artists</h2></ul></div>').cycle({
//Specify options
fx: 'scrollLeft', //Name of transition effect
timeout: 0, //Disable auto advance
pager: '#pager', //Selector for element to use as pager container
pagerAnchorBuilder: function (index) { //Build the pager
return '<li><p class="artists"><a href="#">' + titles[index] + '</p></a></li>';
},
updateActivePagerLink: function(pager, currSlideIndex) {
$(pager).find('li').removeClass('active').filter('li:eq('+currSlideIndex+')').addClass('active');
}
});
});
</script>
<script type="text/javascript">
jQuery(document).ready(function($) {
$jq("a.example_group").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'titlePosition' : 'over',
'titleFormat' : function(title, currentArray, currentIndex, currentOpts) {
return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>';
}
});
});
</script>
<title>Tech Demo</title>
</head>
<body>
<div id="cycleContainer" style="z-index:0;">
<div class="item">
<div id="current_resident_content" style="border:1px solid black; width: 960px; height: 500px;" >
<div id="current_resident_images">
<!-- <div class="current_resident_img"><a class="swipebox" rel="gallery-1" href="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg"><img src="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg" width=100 height=100 /></a></div>
<div class="current_resident_img"><a class="swipebox" rel="gallery-1" href="http://www.newyorker.com/online/blogs/alpha/test/test-thumb-100x100.jpg"><img src="http://www.newyorker.com/online/blogs/alpha/test/test-thumb-100x100.jpg" width=100 height=100 /></a></div>-->
<div class="current_resident_img"><a class="example_group" rel="group1" href="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg"><img src="http://cdn4.blogs.babble.com/strollerderby/files/2011/06/test-100x100.jpg" width=100 height=100 /></a></div>
<div class="current_resident_img"><a class="example_group" rel="group1" href="http://www.newyorker.com/online/blogs/alpha/test/test-thumb-100x100.jpg"><img src="http://www.newyorker.com/online/blogs/alpha/test/test-thumb-100x100.jpg" width=100 height=100 /></a></div>
<div class="current_resident_img"><a href="www.reddit.com" >This is a test link.</a></div>
<div class="current_resident_img"><img src="{resident-thumbnail-4}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-5}" width=100 height=100 /></div>
</div><br />
<div id="current_resident_bio">
<h2>This is a test</h2>
<p>Lorem Ipsum blah blah blah</p>
</div>
</div>
</div>
<div class="item">
<div id="current_resident_content" style="border:1px solid black; width: 960px; height: 500px;">
<div id="current_resident_images">
<div class="current_resident_img"><a class="example_group" rel="group2" href="http://www.fmwconcepts.com/misc_tests/caption_test/1tmp_6819.gif"><img src="http://www.fmwconcepts.com/misc_tests/caption_test/1tmp_6819.gif" width=100 height=100 /></a></div>
<div class="current_resident_img"><a class="example_group" rel="group2" href="http://www.nasa.gov/centers/marshall/images/content/99076main_DSCF8603_t.jpg"><img src="http://www.nasa.gov/centers/marshall/images/content/99076main_DSCF8603_t.jpg" width=100 height=100 /></a></div>
<div class="current_resident_img"><img src="{resident-thumbnail-3}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-4}" width=100 height=100 /></div>
<div class="current_resident_img"><img src="{resident-thumbnail-5}" width=100 height=100 /></div>
</div><br />
<div id="current_resident_bio">
<h2>This is a test</h2>
<p>Lorem Ipsum blah blah blah</p>
</div>
</div>
</div>
</div>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.