Parallax efekt – obrázky a video na pozadí:
jQuery(document).ready(function($) {
// Set the background-attachment for body to "fixed" so that
// we can control it's scroll speed.
$('body').css('background-attachment', 'fixed');
// Attach a function to watch the window.scroll event, and
// move the background image slower than the content scroll.
$(window).scroll(function () {
document.body.style.backgroundPosition = "0px " + (0 – (Math.max(document.documentElement.scrollTop, document.body.scrollTop) / 4)) + "px";
});
});Příklad parallax efektu: wwws.superfish.com
julianware.com/jquery-scroll-follow-sticky-fixed-sidebar ![]()
// Float block + Sticky navigation
$(function() {
scrollPoint = 100, // Distance to scroll before sticking
topPadding = 100, // Fixed minimum distance from top of window
bottomPadding = 40, // Adjustment to scrolling element point of deactivation at footer
$window = $(window),
documentHeight = $(document).height(),
$sticky = $('.float-block'), // Scrolling element
$footer = $('footer'), // Footer container
$sidebar = $('.content'), // Sidebar Container
sidebarHeight = $sidebar.outerHeight(),
footerHeight = $footer.outerHeight(),
offset = $sticky.offset(),
stop = sidebarHeight - $sticky.height() - 15,
$menu = $('#main-menu');
});
function floatBlock() {
if (($window.scrollTop() > offset.top - scrollPoint) && ($window.scrollTop() < (documentHeight - footerHeight) - sidebarHeight + bottomPadding)) {
if (($window.scrollTop() - offset.top + topPadding) < stop) {
$sticky.stop().animate({marginTop: $window.scrollTop() - offset.top + topPadding},0); // Last number is drag animation duration
}
else {
$sticky.stop().animate({marginTop: stop},0);
}
$menu.addClass('affix'); // Sticky navigation
} else {
$sticky.stop().animate({marginTop: 0},0); // Input same drag animation duration as above
$menu.removeClass('affix'); // Sticky navigation
}
}
$(window).scroll(function(){
floatBlock();
});Plovoucí (floating div) SkyScraper reklama
JS:
$(document).ready(function(){
var skyscraperAd = $("#skyscraper");
var skyscraperOffset = skyscraperAd.offset().top;
var skyscraperBottom = $("#footer").offset().top – skyscraperAd.height();
$(window).scroll(function() {
skyscraperAd.stop();
var windowTop = $(window).scrollTop();
if (windowTop > skyscraperOffset) {
if (windowTop > skyscraperBottom) windowTop = skyscraperBottom;
if (windowTop < 0) windowTop = 0;
skyscraperAd.animate({top: windowTop + 'px'}, 'fast');
} else
skyscraperAd.animate({top: skyscraperOffset + 'px'}, 'fast');
});
});CSS:
#skyscraper {
position: absolute;
top: 300px;
left: 50%;
margin-left: 500px;
width: 120px;
height: 600px;
}Plovoucí blok respektující obklopující prvek (např. postranní sloupec – sidebar)
JS:
/**
* Sticky element in the wrapper on scroll
*/
var jQuery = jQuery.noConflict();
jQuery("document").ready(function($){
$(window).scroll(function () {
var sticky = $(".sticky");
var wrapper = $(".wrapper");
var top = $(window).scrollTop();
var wrapperTop = wrapper.offset().top;
var wrapperBottom = wrapperTop + wrapper.height();
var normalPosition = wrapperBottom - sticky.height();
if (wrapperTop < top && normalPosition > top) {
sticky.addClass("sticky-top");
sticky.removeClass("sticky-bottom");
} else {
sticky.removeClass("sticky-top");
if (wrapperBottom > top && normalPosition < top) {
sticky.addClass("sticky-bottom");
} else {
sticky.removeClass("sticky-bottom");
}
}
});
});CSS:
/**
* Sticky element in the wrapper on scroll
*/
body {
min-height: 2000px; /* optional */
}
.wrapper {
position: relative;
height: 300px; /* optional */
background: #eee; /* optional */
}
.sticky {
width: 300px; /* optional */
background: #ccc; /* optional */
}
.sticky-top {
position:fixed;
top: 0;
}
.sticky-bottom {
position: absolute;
bottom: 0;
}| Příloha | Velikost |
|---|---|
| sticky-element-in-wrapper-on-scroll.zip | 40.3 KB |
Efekt rozbalování s sbalování obsahu využívající jQuery rozšíření Collapser.
Demo viz přiložený archiv akordeon.zip.
Zjednodušenou variantou (samozřemě vyžaduje jQuery knihovnu) může být také:
<!-- show-hide -->
<script type="text/javascript">
$(document).ready(function() {
$('.show-hide').hide();
$('a.toggle_link').click(function() {
$(this).next('div.show-hide').toggle();
return false;
});
});
</script>Kdy se po kliku na odkaz:
<a href="#" class="toggle_link">Více</a>
Skryje obsah elementu s třídou .show-hide:
<div class="show-hide">...</div>
| Příloha | Velikost |
|---|---|
| akordeon.zip | 39.94 KB |
Masonry automaticky "skládá" obsah stránky dle volného místa (jQuery).
Columnizer umožňuje zalomit dlouhý úzký obsah do více sloupců (jQuery).
jQuery Flat Shadow – vržený stín
factory.brainleaf.eu/jqueryIntroLoader
| Příloha | Velikost |
|---|---|
| Correct CSS margin (jquery.simplyscroll) | 12.1 KB |
Posuvník (JqueryUI Slider) se používá pro změnu číselných hodnot v určitém rozsahu.
Výhodou posuvníku je, že všechny zvolené hodnoty jsou platné (brání vložení chybné hodnoty).
Příklady:
jQuery Slideshow podporující dotyková gesta.
Pokud potřebujete zajistit na stránce stejnou výšku některých prvků (tj. zjistit maximální výšku a nastavit ji u všech ostatních) jistě se Vám bude hodit níže uvedené řešení.
... <meta http-equiv="content-script-type" content="text/javascript" /> <script type="text/javascript" src="jquery-1.6.4.min.js"></script> <script type="text/javascript" src="jquery.equalHeights.js"></script> <script type="text/javascript" src="jquery.pxem.js"></script> <script type="text/javascript" src="jquery.settings.js"></script> </head> <body> ...
$(document).ready(function(){
// vyber selektoru
$("#box1, #box2, .boxes ... etc.").equalHeights({ relative: true });
});Další možnosti:
/*
* Unify Heights
*
* <div id="container">
* <div id="sidebar"></div>
* <div id="content"></div>
* </div>
*
*//*
$(function() {
function unifyHeights() {
var maxHeight = 0;
$('#container').children('#sidebar, #content').each(function() {
var height = $(this).outerHeight();
// alert(height);
if (height > maxHeight) {
maxHeight = height;
}
});
$('#sidebar, #content').css('height', maxHeight);
}
unifyHeights();
});/*
* iframe Auto Adjust Height as content changes
*
* <div id="main">
* <div id="navigation"></div>
* <div id="content">
* <iframe></iframe>
* </div>
* </div>
*
* html, body, #main {
* margin: 0;
* padding: 0;
* height: 100%;
* }
*
*/
$(function() {
// Resize iFrame Height to Fit Content
function ResizeIframe() {
var mainHeight = $('#main').outerHeight();
var navHeight = $('#navigation').outerHeight();
var contenHeight = mainHeight - navHeight;
$('iframe').css('height', contenHeight);
}
// Resize
ResizeIframe();
// Try to change the iframe size every 2 seconds
setInterval(function() {
ResizeIframe();
}, 2000);
});| Příloha | Velikost |
|---|---|
| equalheights.zip | 2.63 KB |
Práce s textem (odstranění, úprava, vložení):
$(document).ready(function(){
$('#block-1 .text').remove();
$('#block-1 .title').text('Nadpis');
$('#block-1 .link').append('<a href="#">Odkaz</a>');
});Příklad úpravy URL adresy:
$(document).ready(function(){
$('#block-1 .content a').each(function(){
$(this).attr('href', 'http://www.myweb.cz' + $(this).attr('href'));
});
});Změna velikosti textu zvoleného prvku:
Zobrazení příspěvku zvoleného uživatele:
Ukázka Fixed menu on scroll (soubory ke stažení).
Zdroj:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta charset="utf-8" />
<title>Fixed menu on scroll</title>
<meta name="description" content="How to make fixed menu on scroll with jQuery and CSS" />
<meta name="keywords" content="fixed,menu,scroll" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/fixed-menu-on-scroll.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div class="header">Brand</div>
<div class="main-menu">
<ul class="clearfix">
<li><a href="#">Home</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">CSS</a></li>
</ul>
</div>
<h1>Fixed menu on scroll</h1>
<p>Make fixed menu on scroll with jQuery and CSS.</p>
</body>
</html>jQuery:
/**
* Fixed menu on scroll
*/
var jQuery = jQuery.noConflict();
jQuery("document").ready(function($){
var nav = $('.main-menu');
$(window).scroll(function () {
if ($(this).scrollTop() > 110) {
nav.addClass("fixed");
} else {
nav.removeClass("fixed");
}
});
});CSS:
/**
* Fixed menu top on scroll
*/
.fixed {
position: fixed;
top: 0;
left: 0;
z-index: 999;
width: 100%;
}
| Příloha | Velikost |
|---|---|
| fixed-menu-on-scroll.zip | 40.12 KB |
Modální upozornění:
$("#alert").hover(
function() {
alert("Your book is overdue.");
}
);Modální upozornění vytvořené pomocí jQuery Dialog:
// Inserting modal information message when clicking on the link
$('#dialog a').click(function(event) {
var link = $(this).attr('href');
// create message
$(this).append('<div id="message" title="AKCE">Výprodej!</div>');
// show message as dialog
$(function() {
$("#message").dialog({
modal: true,
resizable: false,
buttons: {
Ok: function() {
// close dialog
$(this).dialog("close");
// execute a link
location.href = link;
}
}
});
});
// stop link execution
return false; //event.preventDefault();
});
.ui-dialog .ui-widget-header {
background: #ffb321;
color: #7f3300;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}
.ui-dialog .ui-button {
background: #d6007f;
color: #fff;
box-shadow: none;
}Další možnosti:
Vysouvání (Slide Out and In):
<!-- Slide Toggle -->
<div class="slide-toggle">
<p>Lorem ipsum dolor sit amet.</p>
</div>/**
* Slide Toggle
*/
var jQuery = jQuery.noConflict();
jQuery("document").ready(function($){
var toggle = $('.slide-toggle');
$(toggle).click(function(){
if(toggle.css("bottom") == "0px") {
toggle.animate({bottom: "-60px"}, 1000);
} else {
toggle.animate({bottom: "0px"}, 1000);
}
return false;
});
});/**
* Slide Toggle
*/
.slide-toggle {
position: fixed;
bottom: -60px;
left: 60%;
z-index: 99;
margin: 0;
height: 300px;
cursor: pointer;
}<div id="block-block-2"> <h2 class="block-title">Announcement Area</h2> <div class="content"> <p>Lorem ipsum dolor sit amet.</p> </div> </div>
/**
* Slide Toggle
*/
$('#block-block-2 .block-title').click(function(){
if ($("body").css("direction").toLowerCase() == "rtl") {
if($("#block-block-2").css("right") == "-170px") {
$("#block-block-2").animate({right: "0"}, 1000);
$("#block-block-2").addClass('in');
} else {
$("#block-block-2").animate({right: "-170px"}, 1000);
$("#block-block-2").removeClass('in');
}
} else {
if($("#block-block-2").css("left") == "-170px") {
$("#block-block-2").animate({left: "0"}, 1000);
$("#block-block-2").addClass('in');
} else {
$("#block-block-2").animate({left: "-170px"}, 1000);
$("#block-block-2").removeClass('in');
}
}
return false;
});/**
* Slide Toggle
*/
#block-block-2 {
position: absolute;
top: 100px;
left: -170px; /* LTR */
width: 200px;
}
#block-block-2 .block-title {
position: absolute;
left: 70px; /* LTR */
top: 99px;
width: 228px;
height: 30px;
line-height: 27px;
cursor: pointer;
text-align: center;
font-weight: normal;
font-size: 16px;
background: #ff0000;
color: #fff;
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
writing-mode: lr-tb;
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}Efekt grafického zvýraznění obrázkové mapy využívající jQuery rozšíření Map Hilight.
| Příloha | Velikost |
|---|---|
| map-hilight.zip | 70.75 KB |
Pomocí jQuery pluginu TableSort je možné řadit data v tabulce dle záhlaví:
| Příloha | Velikost |
|---|---|
| tablesorter.zip | 17.8 KB |