В последнее время я немного борюсь с javascript, и, честно говоря, я не знаю об этом.
Сообщения на моем tumblr имеют ширину 350 пикселей, но поскольку фотосеты используют iframes, я искал другое решение на фотосетях и нашел этот код:
<script type="text/javascript">
//This will change the source address and display the correct size.
$newElems.imagesLoaded(function(){
$(".photoset").each(function() {
var newSrc = $(this).attr("src").replace('500','350');
$(this).attr("src", newSrc);
});
}
//This will get the new size of the iframe and resize the iframe holder accordingly.
$newElems.imagesLoaded(function(){
$(function(){
var iFrames = $('.photoset');
function iResize() {
for (var i = 0, j = iFrames.length; i < j; i++) {
iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';}
}
if ($.browser.safari || $.browser.opera) {
iFrames.load(function(){
setTimeout(iResize, 0);
});
for (var i = 0, j = iFrames.length; i < j; i++) {
var iSource = iFrames[i].src;
iFrames[i].src = '';
iFrames[i].src = iSource;
}
} else {
iFrames.load(function() {
this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
});
}
});
}
Он работает отлично, когда я иду в свой блог.
Теперь мы приходим к моей проблеме: My tumblr использует бесконечный плагин прокрутки. И всякий раз, когда я прокручиваю вниз, загружается новая куча картинок, и если загружается фотосет, она больше не изменяется, и она отображается в размере по умолчанию.
Я искал решение целую вечность, пытался настроить javascript-коды, но я ничего не понимаю. Единственное, что я нашел в Интернете, это то, что не помогает, и я действительно надеюсь, что кто-то может помочь мне здесь, я был бы более чем благодарен.
Заранее спасибо!
С бесконечным прокруткой вам нужно применить любые методы, используемые в вашем существующем контенте, к вашему новому контенту, в этом случае его iFrames()
и .photosets
. Это можно сделать с помощью обратного вызова, предоставляемого бесконечным прокруткой.
Согласно документации (http://www.infinite-scroll.com/):
$('#content').infinitescroll({
navSelector : "div.navigation",
nextSelector : "div.navigation a:first",
itemSelector : "#content div.post" },
// callback
function( $newElems ){
// Do stuff to new posts / $newElems
});
});
$newElems
будет содержать любое новое содержимое, добавленное в dom. Теперь используйте свои методы непосредственно на новом контенте.
Я бы предложил переработать iFrames()
чтобы он принял массив элементов, поэтому его можно назвать более чем одним.