Появление/исчезновение элемента при прокрутке страницы 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> |
Спасибо ОГРОМНОЕ за эту тему! я уже отчаялась найти как такого эффекта добиться :)
|
Может кто скажет, как сделать такое же, только без пикселей (а до прокрутки определенной части сайта, допустим: появление между концом записи и началом блока комментариев). Могу дать ссылку, где я такое видел!
|
У меня ещё такой вопрос. Я всё сделал всё работает, но при исчезновении элемента занимаемое им пространство сверху сайта 40px не убирается:( как быть? И есля перезагрузить страницу элемент не исчезает сразу а только если выполнить полный цикл тоесть опустить и поднять страницу тоько тогда он уберётся.
|
добавь к стилю display:none;
это так говорит мой волшебный шар, он читает невидимой для нас код :haha: |
pat,
телепатов ищите? или может код покажите? |
<style type= "text/css"> #menu_div, #navigation, #menu, #nav{ height: 45px; } </style> <script> $(function () { var element = $("#menu_div, #navigation, #menu, #nav"), display; $(window).scroll(function () { display = $(this).scrollTop() >= 200; display != element.css('opacity') && element.stop().animate({ 'opacity': display }, 500); }); }); </script> Извиняюсь :thanks: |
Вот
|
pat,
возьмите код из 8 поста |
да увидел. неужели это я писал :haha:
<head> <style> #secondary_bar { height: 33px; width: 100%; background: red; /*можешь убрать строку, панель будет видна */ display: none; } #secondary_bar.bar_fixed { position: fixed; top: 0; z-index: 9999; display: block; } /* Стили теста */ body { height: 1200px; } #test { height: 55px; background: green; } </style> </head> <body> <div id="test">Test</div> <div id="secondary_bar">Здесь меню</div>Здесь разный текст и все остальное <br>Здесь разный текст и все остальное <br>Здесь разный текст и все остальное <br>Здесь разный текст и все остальное <br>Здесь разный текст и все остальное <br> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> jQuery(function (f) { f(window).scroll(function () { f('#secondary_bar')[(f(this).scrollTop() > 55 ? "add" : "remove") + "Class"]("bar_fixed"); }); }); </script> </body> |
Спасибо большое! Но осталась ещё одна проблемка..
После обновления страницы элемент не исчезает сразу, а только если выполнить полный цикл то есть опустить и поднять страницу только тогда он уберётся. |
так поставь в head скрипты
это свидетельствует о том, что ты захламил сайт уже всяким мусором :dance: |
Цитата:
|
UP:help:
|
подскажите пож. как добавить в код id после которого елемент обратно исчезнет?
|
Спасибо за скрипт)
Давно использую как паралакс, пример блок с лайтбоксом и его преимуществами... |
Звук при появлении блока
А можно ли сделать так чтобы при плавном появлении блока было звуковое оповещение? Спасибо.
|
Цитата:
|
Подскажите как можно доработать данный скрипт в таком плане, при прокрутке вниз страницы меню скрывается, т.е. как обычно без скриптов, однако если начинать поднимать страницу вверх, меню плавно появляется, не зависимо где начался подъем, если развернутся не дойдя до вверха и начинать опять вниз спускаться меню опять скрывается
|
Poznakomlus,Что-то попробовал поставить в песочницу и не работает ... тык
|
Цитата:
<style> body { height: 1850px; } body { display: block; margin: 8px; } .block { display: block; margin: 8px; height: 200px; width: 250px } #hid { width: 150px; height: 50px; background: #FF0000; opacity: 0; position: fixed; } </style> <div class="block"> <div id="hid"> тут что-то вставляете </div> </div> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script> jQuery( document ).ready(function( $ ) { var element = $("#hid"), display; $(window).scroll(function() { display = $(this).scrollTop() >= 200; display != element.css('opacity') && element.stop().animate({ 'opacity': display }, 500); }); }); </script> |
Poznakomlus,Это все конечно зашибиська, но как сделать чтобы при прокрутке страницы вниз, данный блок всплывал именно внизу страницы!?
Например человек спустился вниз а там выплыл блок к примеру с надписью - "Не нашел что искал? Звони +7 ххх ххх хх хх" |
Хотя нет. Спасибо. Уже разобрался сам на тестовом сайте
|
Poznakomlus,Подскажите пожалуйста как привязать к оному скрипту так, чтобы блок, например #hid снизу, появлялся еще и #hid1 одновременно сверху ... Спасибо
|
Цитата:
|
Цитата:
|
Вложений: 1
А как сделать скрытие, но плавное и с кнопочкой показать всё. Пример прикрепил, хотя он не очень удачный т.к. горизонтальное скрытие, да и плавность очень короткая и кнопки "показать всё" нет. Я нашёл этот пример на почтовике mail и привёл, дабы показать, какую плавную прозрачность я имею ввиду.
|
12345678,
:-? |
Вложений: 1
Вот на этом скриншоте более показательно, что хотелось бы реализовать.
Как видно, последняя строчка полупрозрачная, что очень хорошо демонстрирует что там есть продолжение. Вероятность открытия полного списка статей и перехода за счёт такого подхода увеличивается. |
|
Всем здравствуйте!
Подскажите как бороться с такой ерундой: нужно чтобы при скроллинге страницы состоящей из div и 4 section находящихся во втором div верхнее меню из первого div исчезало при прокрутке на 4-ую section. Нашел скрипт, в отдельном тестовом документе работает, но не знаю как в скрипте задать высоту стр. в единицах wh. И еще само меню сразу исчезает при скролле, блок остается и исчезает в нужном месте, но меню (его текст) заменяется бегающими при скроллинге цифрами. Что это за цифры и как их убрать? Вот код: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> $(document).ready(function(){ $(window).scroll(function(){ var bo = $(this).scrollTop(); var a = $("#menugl").css('opacity') $("#menugl").html(bo); if ( bo >= 1700 && a == 1) {$("#menugl").css("opacity", "0",500)}; if ( bo <= 1700 && a == 0) {$("#menugl").css("opacity", "1",500)}; }) }) </script> </head> <body> <div class="glav"> <section id="c"> <ul id="menugl"> <li class=""> <a href="">11111</a> </li> <li class=""> <a href="">22222</a> </li> <li class=""> <a href="">33333</a> </li> </ul> </div> <section class="odin"> </div> <section class="dva"> </div> </div> </body> </html> стили html, body, section, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0; border:0;outline:0; font-size:100%;vertical-align:baseline; background:transparent; }a{text-decoration:none;} .div{word-break:break-all;}#div{word-break:break-all;} ul, li {list-style-type: none; margin:0;padding:0; border:0;outline:0;} body { height:3000px; } .glav { height:300vh; } #menu { width:100vw; height:100vh; background:#3FF; } #menugl { position:fixed; width:20vw; height:20vh; padding:5vh; background:#66C; opacity:1; } #menugl a:hover { color:#0C3; } .odin { width:100vw; height:100vh; } .dva { width:100vw; height:100vh; background:#CF6; } |
Часовой пояс GMT +3, время: 23:12. |