Используйте pycobertura . Это инструмент командной строки для предотвращения регрессии покрытия кода, отличаясь двумя отчетами о покрытии. Это говорит о том, что ваш новый код лучше или хуже, чем предыдущая версия, с охватом.
$ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml
Это язык не агностик, поскольку он просто опирается на отчет Cobertura (XML-файл), сгенерированный вашим тестированием /
Pycobertura также может генерировать HTML-отчеты, которые прекрасно вписываются в инструменты CI / CD, такие как Jenkins.
[/g2]
Это должно добиться цели:
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}
Простая Служебная функция Это позволит Вам называть служебную функцию, которая принимает элемент, который Вы ищете и если Вы хотите, чтобы элемент был полностью в поле зрения или частично.
function Utils() {
}
Utils.prototype = {
constructor: Utils,
isElementInView: function (element, fullyInView) {
var pageTop = $(window).scrollTop();
var pageBottom = pageTop + $(window).height();
var elementTop = $(element).offset().top;
var elementBottom = elementTop + $(element).height();
if (fullyInView === true) {
return ((pageTop < elementTop) && (pageBottom > elementBottom));
} else {
return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
}
}
};
var Utils = new Utils();
Использование
var isElementInView = Utils.isElementInView($('#flyout-left-container'), false);
if (isElementInView) {
console.log('in view');
} else {
console.log('out of view');
}
WebResourcesDepot записал сценарий для загрузки при прокрутке , который использует jQuery некоторое время назад. Можно просмотреть их Живая Демонстрация Здесь . Говядина их функциональности была этим:
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
lastAddedLiveFunc();
}
});
function lastAddedLiveFunc() {
$('div#lastPostsLoader').html('<img src="images/bigLoader.gif">');
$.post("default.asp?action=getLastPosts&lastPostID="+$(".wrdLatest:last").attr("id"),
function(data){
if (data != "") {
$(".wrdLatest:last").after(data);
}
$('div#lastPostsLoader').empty();
});
};
У меня есть такой метод в моем приложении, но это не использует jQuery:
/* Get the TOP position of a given element. */
function getPositionTop(element){
var offset = 0;
while(element) {
offset += element["offsetTop"];
element = element.offsetParent;
}
return offset;
}
/* Is a given element is visible or not? */
function isElementVisible(eltId) {
var elt = document.getElementById(eltId);
if (!elt) {
// Element not found.
return false;
}
// Get the top and bottom position of the given element.
var posTop = getPositionTop(elt);
var posBottom = posTop + elt.offsetHeight;
// Get the top and bottom position of the *visible* part of the window.
var visibleTop = document.body.scrollTop;
var visibleBottom = visibleTop + document.documentElement.offsetHeight;
return ((posBottom >= visibleTop) && (posTop <= visibleBottom));
}
Редактирование: Этот метод работает хорошо на Т.Е. (по крайней мере, версия 6). Прочитайте комментарии для совместимости с И следующие
function isScrolledIntoView(elem) {
var docViewTop = $(window).scrollTop(),
docViewBottom = docViewTop + $(window).height(),
elemTop = $(elem).offset().top,
elemBottom = elemTop + $(elem).height();
//Is more than half of the element visible
return ((elemTop + ((elemBottom - elemTop)/2)) >= docViewTop && ((elemTop + ((elemBottom - elemTop)/2)) <= docViewBottom));
}
На данный момент лучший метод, который я нашел, - это плагин jQuery появляться . Работает как шарм.
Имитирует настраиваемое событие «появления», которое срабатывает, когда элемент прокручивается в поле зрения или иным образом становится видимым для пользователя.
$ ('# foo'). Появляться (function () { $ (this) .text ('Привет, мир'); });
Этот плагин можно использовать для предотвращения ненужных запросов на контент, который скрыт или находится за пределами видимой области.