2014-02-14 2 views
0

Я точно не знаю, как его назвать, я хотел бы знать, как я могу сделать функцию fadeIn или что-то еще, когда обертка div начинает показывать. Чтобы быть более ясным, я думаю о чем-то подобном linkЭлемент затухания, когда начинается div

Как вы можете видеть, когда вы прокручиваете вниз, элементы скользят вверх. Итак, я пробовал с offset определенного div, после того как один из них отключен, тогда триггеры функции, но его не реагирующая опция, на разных разрешениях не запускается одновременно.

Если вы посмотрите ссылку, которую я предоставил, будь то разрешение, у меня это работает одинаково.

Так что мои вопросы:

  1. я делаю что-то неправильно с css, так что это не очень хорошо запускать с offset?
  2. (я думаю, scrollTop и пиксели здесь не очень хорошие, потому что для этого не подходит вариант) есть другой/лучший способ сделать это, чем offset?
  3. Возможно, вместо передачи и элемента есть способ запуска функции после запуска «div»?

Спасибо за помощь!

Отредактировано: это просто fiddle о том, как это работает. Когда вы находитесь на вершине определенного div, он показывает. Однако, когда вы меняете свое разрешение или просто сворачиваете браузер, изображение уже отображается, когда вы видите красный фон.

+0

У вас, хотя об использовании библиотека в руке le this like stellar и т. д. http://markdalgleish.com/projects/stellar.js/ –

+0

no i havent, предпочитаемый вариант для самостоятельного использования xD –

+0

1. С «стартом» вы имеете в виду, когда div появляется в поле зрения, не так ли? 2. Не могли бы вы показать нам какой-то код, с которым мы можем работать? Скрипка была бы неплохой ... –

ответ

1

Было бы очень легко сделать это с помощью функции jQuery .animate(). Вам просто нужно оживить opacity и top.

Рассмотрим следующий CSS:

.test { 
    background: red; 
    height: 300px; 
    width: 200px; 
    padding: 10px; 
    font-family: Arial; 
    font-size: 50px; 
    text-align: center; 
    color: white; 
    position: absolute; 
    top: 100px; 
    opacity: 0; 
    border-bottom: 10px solid darkred; 
} 

и этот HTML:

<div class="test"> 
    <strong>Hello World!</strong> 
</div> 

Тогда вы можете сделать это:

$(".test").animate({ 
    top: 10, 
    opacity: 1 
}, 1000); 

JSFIDDLE

+0

Эй, да, я знаю, как оживить, но моя проблема в том, как вызвать его правильно, когда div появляется в поле зрения. –

+0

@MateuszWinnicki Используйте '$ (window) .scroll (function() {...})'. http://jsfiddle.net/32L2f/1/ –

+0

hm Я редактировал свой пост, со скрипкой, как я это делал. Но я думаю, это то, что мне нужно, если я хорошо понимаю - это показывает, когда элемент в поле зрения правильно? Может ли это быть с меньшим количеством линий или оптимальным :)? –

Смежные вопросы