我正在使用anythingslider,如果你熟悉它,你可能会知道它具有以下功能:
hashTags : true, // Should links change the hashtag in the URL?
您可以使用它为每张幻灯片生成唯一的网址,就好像它们是网页一样。但缺点是它会为主题标签生成通用名称。 (例如
http://www.mysite.com/#&panel1-2
我的问题是,如何将这些主题标签的名称更改为每张幻灯片的自定义名称?
现在我正在使用以下功能使其在导航栏中显示每个幻灯片标题:
navigationFormatter : function(i, panel){
return panel.find('h6').text();
}
我所做的就是在<h6>
元素中添加标题。那么,我怎样才能使用这些标题来重命名主题标签呢?
答案 0 :(得分:2)
您可以关闭默认哈希并使用onSlideComplete
回调来更新窗口哈希(demo;和full screen demo):
*注意:h6还有一个id(不允许空格)与h6的文本(允许的空格,并在导航标签中使用)
HTML
<ul id="slider">
<li>
<img src="http://placekitten.com/320/200" alt="" />
<h6 id="meow">Meow</h6>
</li>
<li>
<img src="http://placehold.it/320x200" alt="" />
<h6 id="grey">Grey</h6>
</li>
<li>
<img src="http://placebear.com/320/200" alt="" />
<h6 id="rawr">Rawr</h6>
</li>
<li>
<img src="http://dummyimage.com/320x200/000/fff.jpg" alt="" />
<h6 id="bnw">Black & White</h6>
</li>
<li>
<img src="http://placedog.com/320/200" alt="" />
<h6 id="woof">Woof</h6>
</li>
</ul>
脚本
$('#slider').anythingSlider({
// Should links change the hashtag in the URL?
hashTags: false,
// Details at the top of the file on this use (advanced use)
navigationFormatter: function(index, panel) {
return panel.find('h6').text();
},
// Callback when the plugin finished initializing
onInitialized: function(e, slider) {
slider.$items.find('h6').each(function(){
// add some prefix to the id so setting the hash doesn't
// make the page jump
this.id = "tmp_" + this.id;
});
},
// Callback when slide completes - no event variable!
onSlideComplete: function(slider) {
var hash = '#' + slider.$currentPage.find('h6')[0].id.replace(/tmp_/,'');
// remove prefix so hash works on page load
window.location.hash = hash;
}
});
这里是another demo使用面板ID而不是h6 ID。
答案 1 :(得分:0)
我从来没有使用过anysingslider但是如果你想改变它的主题标签,你可以开始在脚本中寻找window.location.hash
,因为哈希生成部分会从那里开始。