[英]How to use Isotope to filter a single random image with Javascript from an array
使用同位素过滤。 http://isotope.metafizzy.co 。
如何添加过滤以仅显示随机选择的1张图像。 每次单击菜单按钮“ RANDOM”,都会显示一个新选择的随机图像。 我假设我可以使用一些JavaScript来生成一个随机数,该数字可能对应于图像类中的数字(尚未添加到代码中),但是每次单击菜单按钮时都需要重新随机化。清除,并且有足够的信息。
html
<ul id="filters">
<li class="filter"><a href="#" data-filter=".RANDOM" title="RANDOM">RANDOM</a></li>
</ul>
<div id="gallerycontainer">
<div class="item RANDOM">
<a href="$Link" title="$Title">
<img src="image.jpg">
</a>
</div>
<div>
isotope-init.js
$(window).load(function() {
var $container = $('#gallerycontainer');
// init
$container.isotope({
// options
itemSelector: '.item',
layoutMode: 'masonry',
isOriginLeft: 'false'
});
// filter items on button click
$('#filters').on( 'click', 'a', function( event ) {
var filtr = $(this).attr('data-filter');
$container.isotope({ filter: filtr });
});
});
更新:
我有这个我认为可以使用的东西: http : //jsfiddle.net/sMu69/137/但是我不确定如何定位“数据过滤器”而不是innerHTML?
<a href="#" class="button" id="message" value="Search" data-filter="*"
onclick="GetValue();">click</a>
function GetValue()
{
var myarray= new Array("item1","item2","item3");
var random = myarray[Math.floor(Math.random() * myarray.length)];
document.getElementById("message").innerHTML=random;
}
最终我找到了这个解决方案:
的HTML
<a href="#" onclick="GetValue();" id="myid" data-filter="">RANDOM</a>
<div id="gallerycontainer">
<div class="item Filter1">
<a href="$Link" title="$Title">
<img src="image.jpg">
</a>
</div>
<div class="item Filter2">
<a href="$Link" title="$Title">
<img src="image.jpg">
</a>
</div>
<div class="item Filter3">
<a href="$Link" title="$Title">
<img src="image.jpg">
</a>
</div>
<div>
Java脚本
function GetValue()
{
var myarray= new Array(".Filter1",".Filter2",".Filter3");
var random = myarray[Math.floor(Math.random() * myarray.length)];
document.getElementById("myid").dataset.filter = random;
}
只需为每个图像设置一个唯一的数据过滤器,然后将它们添加到数组中即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.