|
Появление/исчезновение элемента при прокрутке страницы 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, время: 03:06. |
|