Вот простой плагин jQuery, который должен работать для вас:
(function($) {
$.fn.scrollToast = function(options) {
var settings = options || {};
var offset = settings.offset;
var toast = settings.toast;
var $toast = $(toast);
var hidden = true;
// prepare the toast:
$toast.css({
display: 'none',
position: 'fixed',
top: '0px',
left: '0px',
zIindex: '1',
overflow: 'hidden'
});
this.bind("scroll", function($event) {
var top = $(this).scrollTop();
if ((top >= offset && hidden) || (top < offset && !hidden)) {
hidden = !hidden;
$toast.animate(
{width: "toggle"});
}
});
};
})(jQuery);
Использование : $(window).scrollToast({toast: "#toast", offset: 50});
, где #toast
- селектор, указывающий элемент, который должен выдвинуться, иoffset
- это сколько времени вы хотите, чтобы пользователь прокручивал страницу до появления тоста.
Примечания :
- Использование CSS
position:fixed
и повышение z-index
чтобы элемент toast отображался поверх другого содержимого. - Когда целевой элемент прокручивается до значения, равного или превышающего
offset
, элемент toast выдвигается (он изначально скрыт). - Когда целевой элемент прокручивается до значения, меньшего
offset
, элемент тоста вставляется обратно. - Может быть легко расширен, чтобы показать тост на другом краю экрана илиtop или bottom.
- Возможно, будет работать с любым прокручиваемым элементом, но я использовал
$(window)
, потому что он, кажется, соответствует описанному вами сценарию использования.
См. рабочий примерздесь: http://jsfiddle.net/andrewwhitaker/56dTA/