使用InstafeedJS,我希望能够添加一个按钮,以隐藏在初始Feed后加载的所有内容(例如,用户单击“显示一次或多次”)。我最初的想法是将类或数据标签添加到其他供稿项,然后使用自定义按钮将其隐藏。但是我不确定如何通过脚本添加这些引用。有什么想法吗?
当前代码:
var loadButton = document.getElementById('instafeed-loadmore');
var feed = new Instafeed({
get: 'user',
type: 'image',
limit: '5',
sortBy: 'most-recent',
resolution: 'standard_resolution',
userId: <?php echo $instagram_id; ?>,
accessToken: '<?php echo $instagram_token; ?>',
template: '<li><span class="instagram-post" data-url="{{link}}" data-modal="instagram-popup" data-caption="{{caption}}" data-image="{{image}}" style="background-image: url({{image}});"></span></li>',
after: function() {
if (!this.hasNext()) {
loadButton.setAttribute('disabled', 'disabled');
}
}
});
loadButton.addEventListener('click', function() {
feed.next();
});
feed.run();
答案 0 :(得分:1)
虽然Dipen的回答很好,但您似乎并没有使用jQuery,但这是标准的Js
var limit = 4;
var feed = new Instafeed({
target: 'instafeed',
get: 'user',
type: 'image',
sortBy: 'most-recent',
limit: limit,
resolution: 'standard_resolution',
userId: <?php echo $instagram_id; ?>,
accessToken: '<?php echo $instagram_token; ?>',
template: '<img class="instagram-post" src={{image}} />',
after: function() {
if (!this.hasNext()) {
document.getElementById('btnMore').attr('disabled', 'disabled');
}
}
});
document.getElementById('btnMore').on('click', function(e) {
document.getElementsByClassName("instagram-post:nth-child(n+" + (1 + limit) + ")").show();
feed.next();
});
document.getElementById('btnLess').on('click', function(e) {
document.getElementsByClassName("instagram-post:nth-child(n+" + (1 + limit) + ")").hide();
});
feed.run();
(P.S。正如我仅对“ JQueryified”一词,它是为您接受他的答案,而不是我的答案。)
答案 1 :(得分:0)
您可以通过脚本添加引用,也可以在加载的元素上添加自定义数据属性(有多种方法可以实现所需的功能),但我认为您可以使用CSS选择器选择在初始Feed后加载的所有元素并应用某些样式(隐藏),如下面的代码片段所示。
var limit = 4;
var feed = new Instafeed({
target: 'instafeed',
get: 'user',
type: 'image',
sortBy: 'most-recent',
limit: limit,
resolution: 'standard_resolution',
userId: <?php echo $instagram_id; ?>,
accessToken: '<?php echo $instagram_token; ?>',
template: '<img class="instagram-post" src={{image}} />',
after: function() {
if (!this.hasNext()) {
$('#btnMore').attr('disabled', 'disabled');
}
}
});
$('#btnMore').on('click', function(e) {
$(".instagram-post:nth-child(n+" + (1 + limit) + ")").show();
feed.next();
});
$('#btnLess').on('click', function(e) {
$(".instagram-post:nth-child(n+" + (1 + limit) + ")").hide();
});
feed.run();
.instagram-post {
width: 100px;
height: 100px;
display: inline-block;
margin: 15px;
}
<div id="instafeed"></div>
<button id="btnMore">Load More...</button>
<button id="btnLess">Show Less...</button>
根据需要修改代码。
展开:
在$('#btnLess')
的click事件处理程序中,我从索引.instagram-post
中选择所有类别为limit + 1
的图像,并将其隐藏。
在$('#btnMore')
的click事件处理程序中,我确保提要中的所有可用图像都是可见的,以便在按$('#btnLess')
后每当按下它时,提要中所有先前加载的图像都将也是可见的。
希望有帮助。