|
Появление/исчезновение элемента при прокрутке страницы JQuery
Нужно было, чтобы при прокрутке страницы вниз на 200px появлялся новый элемент с идентификатором hid, сделал так:
$(document).ready(function(){ $(window).scroll(function(){ var bo = $("body").scrollTop(); if ( bo > 200 ) $("#hid").animate({'opacity':'1'},500); }) }) Теперь нужно сделать, чтобы при прокрутке обратно этот элемент исчезал. Такая конструкция не работает: if ( bo < 200 ) $("#hid").animate({'opacity':'0'},500); |
Хм, если использовать не .animate, а .css, то все работает
$(document).ready(function(){ $(window).scroll(function(){ var bo = $("body").scrollTop(); $('#hid').text(bo); if ( bo > 200 ) { $("#hid").css("display", "block"); } else { $("#hid").css("display", "none"); }; }) }) |
0leg9,
запускайте анимацию 2 раза а не 500 |
Цитата:
|
0leg9,
Цитата:
|
0leg9,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #hid{ width: 50px; height: 50px; background: #FF0000; opacity: 0; position: fixed; } body{ height: 1500px; } </style> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> $(document).ready(function(){ $(window).scroll(function(){ var bo = $(this).scrollTop(); var a = $("#hid").css('opacity') $("#hid").html(bo); if ( bo >= 200 && a == 0) {$("#hid").stop().animate({'opacity':'1'},500)}; if ( bo < 200 && a == 1) {$("#hid").stop().animate({'opacity':'0'},500)}; }) }) </script> </head> <body> <div id="hid"> </div> </body> </html> |
<style type="text/css"> #hid { width: 50px; height: 50px; background: #FF0000; opacity: 0; position: fixed; } body { height: 1500px; } </style> <body> <div id="hid"></div> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> $(function () { var element = $("#hid"), display; $(window).scroll(function () { display = $(this).scrollTop() >= 200; display != element.css('opacity') && element.stop().animate({ 'opacity': display }, 500); }); }); </script> </body> рони, bo ? , a ? |
<style type="text/css"> body{ min-height: 1500px; } #blfix{ display:none; position:fixed; top:0; background-color: red; width: 100%; padding: 20px; } </style> <div id="content">Пример теста</div> <div id="blfix">Наш блок</div> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> jQuery(function(f){ var element = f('#blfix'); f(window).scroll(function(){ element['fade'+ (f(this).scrollTop() > 200 ? 'In': 'Out')](500); }); }); </script> |
Спасибо ОГРОМНОЕ за эту тему! я уже отчаялась найти как такого эффекта добиться :)
|
Может кто скажет, как сделать такое же, только без пикселей (а до прокрутки определенной части сайта, допустим: появление между концом записи и началом блока комментариев). Могу дать ссылку, где я такое видел!
|
Часовой пояс GMT +3, время: 02:23. |
|