Легкое и маленькое решение, которое сработало для меня.
Пример. Вы хотите увидеть, является ли элемент видимым в родительском элементе с переполнением переполнения.
$(window).on('scroll', function () {
var container = $('#sidebar');
var containerHeight = container.height();
var scrollPosition = $('#row1').offset().top - container.offset().top;
if (containerHeight < scrollPosition) {
console.log('not visible');
} else {
console.log('visible');
}
})
Благодарим @odeToCode за ответ. Ради полноты я повторно разместил его комментарий как ответ с моим (рабочим) примером. Магия - это атрибут [FromServices].
public class CreateDynamicMappingProfileViewModel : IValidatableObject
{
[Display(Name = "Name", Order = 1), Required, MaxLength(50, ErrorMessage = "The name field allows a maximum of 50 characters")]
public string Name { get; set; }
[Display(Name = "Data Format", Order = 2), Required]
public DataFormat DataFormat { get; set; }
[Display(Name = "Data Context", Order = 3), Required]
public DataContextType DataContextType { get; set; }
[FromServices]
public IMappingProfileServices MappingProfileServices { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
IMappingProfile mappingProfile = new DynamicMappingProfile(Name, DataFormat, DataContextType);
return MappingProfileServices.ValidateCanSave(mappingProfile);
}
}