Coder Social home page Coder Social logo

jquery.scroolly's Introduction

jQuery.Scroolly, what is it?

Scroolly is a handy jQuery plugin that simplifies greatly scroll-effects scripting.

Scroll-effects are some scripted scenarios that are attuned to web-page scrolling position or direction.

In Scroolly environment scrolling scenario is defined by set of rules that are applied to some DOM elements.

Scroolly tracks viewport scrolling position and direction and applies rules that match some criteria.

So what Scroolly scripting looks like? Here:

$('#element').scroolly([
	rule1,
	rule2,
	rule3
]);

Rules - are main building bricks of scroll effects. Each rule is a javascript object that consists of some conditions and actions.

Lets look at a simple sample:

$('#element').scroolly([{
	from: 'doc-top',
	to: 'doc-bottom',
	css: {
		color: 'red'
	}
}]);

This very rule means that when viewport is between top document border and bottom document border (and it’s always true so you can omit ‘from’ and ‘to’) the #element gets the defined css styling.

When conditions are met the actions are taken.

There is thorough documentation in Wiki. But before you go there, review the «Sticky» Scenario just to catch a grasp of what jQuery.Scroolly is about.

«Sticky» Scenario

Let's study typical scrolling scenario - «Sticky».

We have some «body» container (#container) that goes right after «header» and before «footer».

This «body» is headed with «search form» (#element) that we want to stick to viewport top border whenever viewport reaches it. We have pretty big footer, bigger than viewport height. So at some point viewport leaves «body» and we might want to unstick «search form» to leave it behind within «body».

jQuery.Scroolly Container Scenario

Lets see how it is made using jQuery.Scrolly. Lets say «Search form» (#element) is the first DOM child of «body» (#container). Our CSS will be:

#container{
	position: relative;
	padding-top: 100px;
}

#element{
	position: absolute;
}

Below is appropriate JS code. The reference to the container is supplied as the second param after the rules array:

$('#element').scroolly([
{
	to: 'con-top'
	css:{
		top:'0',
		bottom: '',
		position: 'absolute'
	}
},
{
	from: 'con-top',
	to: 'con-bottom - 100el = vp-top',
	css:{
		top: '0',
		bottom: '',
		position: 'fixed'
		
	}
},
{	
	from: 'con-bottom - 100el = vp-top',
	css:{
		top: '',
		bottom: '0',
		position: 'absolute'
	}
}
], $('#container'));

Interested?

Welcome to the Wiki :)

jquery.scroolly's People

Contributors

aliaksandr-master avatar chayka avatar ivanche avatar waitxd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jquery.scroolly's Issues

Выключить/scroolly.destroy

Необходимо полностью отключать, а так же в процессе адаптивности обновлять значения, которые были занесены в правила
как это делать?

Проблема с отрицательными и положительными значениями

Доброго времени суток.
Есть проблема с одновременным использованием положительных и отрицательных значений.
Допустим диапазон значений от "100px" до "-100px"
Отрицательные значения игнорируются и приравниваются к нулю (если я не ошибаюсь). Если, допустим, указать диапазон "-0px" и "-100px", тогда анимация отрабатывает.

Как настроить библиотеку? Не опознает scroolly

Посмотрите, пожалуйста, что я делаю не так:

Картинка внутри страницы:

Скрипт внутри страницы:

<script type="text/javascript"> $('#five').scroolly([ { to: 'con-top', css:{ top:'0', bottom: '', position: 'absolute' } }, { from: 'con-top', to: 'con-bottom - 1000el = vp-top', css:{ top: '0', bottom: '', position: 'fixed' } }, { from: 'con-bottom - 1000el = vp-top', css:{ top: '', bottom: '0', position: 'absolute' } } ], $('#body')); </script>

Подключен js после jquery:

<script src="js/jquery-3.1.1.min.js"></script> <script src="js/jQuery.Scroolly-master/src/jquery.scroolly.js"></script>

Выводится ошибка:
Uncaught ReferenceError: $ is not defined
вот здесь: $('#five').scroolly([

Как исправить?

dynamic container

Hello!
What if we increased container height dynamically(by ajax call appended some items) and at that moment $(window).scrollTop() > 0 and scroolly is already initialized.

What are the correct steps to reinitialize scroolly to encounter new container height or whatever should be done to render properly when scrolling after appending?

Последний пиксель

Есть такая проблема, когда загружаем страницу на том месте , где vp-bottom совпадает с con-bottom. Так вот в этот самый момент правила игнорируются.
И если загрузить страницу в таком месте, либо клацнуть по клавише END то правило не выполнится (

Конфликт с библиотекой prototype.js

Приветствую!

На данный момент плагин несовместим с библотекой prototype.js(используется в Magento).

Проблема заключается в следующем:
из-за prototype.js у объектов появляютя доп. свойства. Вот без прототайпа - http://i.imgur.com/KdSOCQ8.png и как в магенте - http://i.imgur.com/sQttgtV.png На последнем скрине видно - куча доп. свойств. В этом месте - http://i.imgur.com/p1VrvIy.png идет проверка в цикле, в магенте как я говорил все объекты содержать прототайповские методы и поэтому как только цикл встречает функцию возвращается null

1

1

Falls in IE8

What browser version it supported?

It's possible to extend for IE8?

Выполнить функцию

Можно ли не только css правила применить, но ещё запустить выполнение какой нибудь ф-ии?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.