Lazy插件不适用于我。我什至添加了alerts
来查找问题所在,但对我而言一切正常。我尝试为我的画廊使用插件的this效果。
[Here是我使用jQuery.Lazy()的网站页面。
HTML:
<div class="gallery-box col-md-9">
<div class="col-md-11 pull-right">
<ul>
<li class="lazy">
<a href="images/gallery2/image1.jpg" title="Item 1 title ..." data-desc="Item1 a small cake baked in a cup-shaped foil or paper case" rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb1.jpg" alt="Image description for search engins" />
<h4>جشن امضاء عادل فردوسی پور</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image2.jpg" title="Item 2 title ..." data-desc="Item 2 A cake made of sweetened cottage cheese or cream cheese, eggs, milk, sugar, and flavorings." rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb2.jpg" alt="Image description for search engins" />
<h4>جشن امضاء هنگامه قاضیانی</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image3.jpg" title="Item 3 title ..." data-desc="Item 3 A small, chocolate-covered candy with a hard or soft center." rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb3.jpg" alt="Image description for search engins" />
<h4>جشن امضاء امیر شهاب رضویان</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image1.jpg" title="Item 1 title ..." data-desc="Item1 a small cake baked in a cup-shaped foil or paper case" rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb1.jpg" alt="Image description for search engins" />
<h4>جشن امضاء عادل فردوسی پور</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image2.jpg" title="Item 2 title ..." data-desc="Item 2 A cake made of sweetened cottage cheese or cream cheese, eggs, milk, sugar, and flavorings." rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb2.jpg" alt="Image description for search engins" />
<h4>جشن امضاء هنگامه قاضیانی</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image3.jpg" title="Item 3 title ..." data-desc="Item 3 A small, chocolate-covered candy with a hard or soft center." rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb3.jpg" alt="Image description for search engins" />
<h4>جشن امضاء امیر شهاب رضویان</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image1.jpg" title="Item 1 title ..." data-desc="Item1 a small cake baked in a cup-shaped foil or paper case" rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb1.jpg" alt="Image description for search engins" />
<h4>جشن امضاء عادل فردوسی پور</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image2.jpg" title="Item 2 title ..." data-desc="Item 2 A cake made of sweetened cottage cheese or cream cheese, eggs, milk, sugar, and flavorings." rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb2.jpg" alt="Image description for search engins" />
<h4>جشن امضاء هنگامه قاضیانی</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image3.jpg" title="Item 3 title ..." data-desc="Item 3 A small, chocolate-covered candy with a hard or soft center." rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb3.jpg" alt="Image description for search engins" />
<h4>جشن امضاء امیر شهاب رضویان</h4>
</a>
</li>
<li class="lazy">
<a href="images/gallery2/image1.jpg" title="Item 1 title ..." data-desc="Item1 a small cake baked in a cup-shaped foil or paper case" rel="lightbox[group1]">
<img style="width:200px; height:145px;" src="images/gallery2/thumb1.jpg" alt="Image description for search engins" />
<h4>جشن امضاء عادل فردوسی پور</h4>
</a>
</li>
</ul>
<div style="clear:both;"></div>
</div>
</div>
CSS:
.gallery-box ul > div {
margin-bottom: 20px;
}
.gallery-box li {
float: right;
display: inline-block;
margin-left: 5%;
min-height: 280px;
display: block;
}
.gallery-box li {
min-height: 205px;
padding: 9px;
background-color: #fff;
margin-bottom: 20px;
}
.gallery-box li:last-child {
margin-left: none;
}
.gallery-box li h4 {
text-align: center;
}
JS:
$(document).ready(function() {
$(function() {
$('li.lazy').lazy({
effect: "fadeIn",
effectTime: 2000,
threshold: 0,
});
});
});
在这里OP!
[好的,您希望将li
的全部内容延迟加载。通常这是可能的。但是您必须考虑要做什么。懒惰加载内容一般没问题...
您将需要一个可以从中获取数据的后端。也许是一个简单的Lazy脚本。您将一些数据发布到脚本中,它将为您返回php
。
对于我们的示例,脚本看起来像这样:
html
非常简单。现在有两种方法可以使if( isset($_POST["id"]) && is_numeric($_POST["id"]) ) {
echo '<a href="images/gallery2/image' . $_POST["id"] . '.jpg" title="Item ' . $_POST["id"] . ' title">';
echo ' <img src="images/gallery2/thumb' . $_POST["id"] . '.jpg" />';
echo ' <h4>جشن امضاء عادل فردوسی پور</h4>';
echo '</a>';
die();
}
加载。我们先从复杂开始。
方式1:使用“自定义加载程序”
自定义加载程序是为Lazy
创建自己的加载程序功能的一种方法。您必须在这里自己实现所有内容,但另一方面,您会更加灵活。我们将自定义负载Lazy
命名为简单
首先,我们需要更改您的html元素。我们需要一个ajaxLoader
属性,以指定要使用的加载程序。然后添加一些数据,我们要发布到您的脚本data-loader
。因此data-id
标签将如下所示:
li
现在我们创建<li class="lazy" data-loader="ajaxLoader" data-id="1"></li>
<li class="lazy" data-loader="ajaxLoader" data-id="2"></li>
<li class="lazy" data-loader="ajaxLoader" data-id="3"></li>
<li class="lazy" data-loader="ajaxLoader" data-id="4"></li>
<li class="lazy" data-loader="ajaxLoader" data-id="5"> ...
的实例,并创建我们自己的自定义加载程序。这看起来实际上更加复杂(您将在我的Lazy
中找到所有带有注释的详细信息)。
jsFiddle example
就是这个!现在,您可以使用自己编写的加载程序,以[[lazy way取代$(function() {
$("li.lazy").lazy({
threshold: 0,
ajaxLoader: function(element, response) {
$.ajax({
url: "yourScript.php",
method: "POST",
dataType: "html",
data: {id: element.data("id")},
success: function(data) {
element.html(data).fadeIn(3000);
response(true);
},
error: function() {
response(false);
}
});
}
});
});
的方式加载li
内容。
AJAX
Lazy
更改为custom loader
。这也很容易,但是您不必手动将自定义加载程序包含到每个实例中。您可以在plugin
或git repo中找到教程。方式2:使用惰性的project page插件
AJAX
有一个bunch of plugins来加载不同的内容。您甚至可以使用Lazy
。它使用起来稍微容易一些,但不能像AJAX
plugin那样自定义。[要使用它,我们将AJAX
脚本从custom loader
更改为php
:
$_POST
元素也将有所改变。我们将$_GET
设置为if( isset($_GET["id"]) && is_numeric($_GET["id"]) ) {
,插件的名称是什么,并设置一个data-loader
属性,并带有要从中加载html数据的完整ajax
。
data-src
然后创建URL
实例本身非常容易:
<li class="lazy" data-loader="ajax" data-src="yourScript.php?id=1"></li> <li class="lazy" data-loader="ajax" data-src="yourScript.php?id=2"></li> <li class="lazy" data-loader="ajax" data-src="yourScript.php?id=3"></li> <li class="lazy" data-loader="ajax" data-src="yourScript.php?id=4"></li> <li class="lazy" data-loader="ajax" data-src="yourScript.php?id=5"> ...
为了使效果也可以在Lazy
插件中使用,您必须使用$(function() { $('li.lazy').lazy({ threshold: 0 }); });
提供的回调AJAX
和beforeLoad
。这样,您甚至可以创建加载动画或其他内容。即使是第一种方式...
我希望这可以帮助您了解延迟加载和afterLoad
的用法。