Поле для подписки внизу
Привет, ребята, я работаю над наклейкой подписки, как показано на сайте ниже
я использовал следующие JS
$.fn.is_on_screen = function(){
var win = $(window);
var viewport = {
top : win.scrollTop(),
left : win.scrollLeft()
};
viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.height();
var bounds = this.offset();
bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
};
$(window).scroll(function(){ // bind window scroll event
if( $('#foot').length > 0 ) { // if target element exists in DOM
if( $('#foot').is_on_screen() ) { // if target element is visible on screen after DOM loaded
$('.subscribeBox').fadeOut(1000);
} else {
$('.subscribeBox').fadeIn(1000);
}
}
});
но проблема в том, что мне нужно добавить еще одну функциональность, чтобы при количестве прокрутки>200 поле подписки становилось видимым, другие скрытые тиски плз дают мне несколько советов, как это сделать.
1 ответ
После долгих попыток я нахожу решение... из глупой ошибки...
HTML это
<header id="head">
<p>Fixed Naviagtion</p>
</header>
<div class="content">
<p>Some Content</p>
</div>
<footer id="footer">
<p>Footer Contents</p>
</footer>
<div class="subscribeBox">
<p>Subscribe me</p>
</div>
вот чистый код JS..
$.fn.is_on_screen = function(){
var win = $(window);
var viewport = {top : win.scrollTop(),left : win.scrollLeft()};
viewport.right = viewport.left + win.width();
viewport.bottom = viewport.top + win.height();
var bounds = this.offset();
bounds.right = bounds.left + this.outerWidth();
bounds.bottom = bounds.top + this.outerHeight();
return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));
};
$(window).scroll(function() {
if ($(window).scrollTop() > $('#head').height() ) {
if( $('#foot').length > 0 ) {
if( $('#foot').is_on_screen() ) {
$('.subscribeBox').fadeOut('slow');
}else {$('.subscribeBox').fadeIn('slow');}
}}
else{$('.subscribeBox').fadeOut('slow');}
});