Карусель на jquery
Добрый день.
Я сделал сайт, на котором главная страничка представляет из себя карусель на jquery. Делал ее по одному буржуйскому уроку. Вроде бы все получилось, но заказчик хочет внести пару изменений в сайт. Если перелистывать странички сайта, то так сказать, маской страничек является крайняя закладка, и когда происходит перелистывание, то все что ниже закладки видно, и как только страничка доезжает до конца, это все резко пропадает. Нужно сделать маской, край класса <dd>. Мучаюсь какой день, копался и в css и в самом JS, но ничего не получилось. Помогите пожалуйста. http://siona-beauty.ru/5/index.htm CSS .easy-accordion{display:block;position:relative;overflow:hidden;padding:0;margin:0} .easy-accordion dt,.easy-accordion dd{margin:0;padding:0} .easy-accordion dt,.easy-accordion dd{position:absolute} .easy-accordion dt{margin-bottom:0;margin-left:0;z-index:5;/* Safari */ -webkit-transform: rotate(-90deg); /* OPERA */ -o-transform: rotate(-90deg) translate(0px, -4px); /* Firefox */ -moz-transform: rotate(-90deg);-moz-transform-origin: 20px 0px; /* Internet Explorer */ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);cursor:pointer;} .easy-accordion dd{z-index:1;opacity:0;overflow:hidden} .easy-accordion dd.active{opacity:1;} .easy-accordion dd.no-more-active{z-index:2;opacity:1} .easy-accordion dd.active{z-index:3} .easy-accordion dd.plus{z-index:4} .easy-accordion .slide-number{position:absolute;bottom:0;left:10px;font-weight:normal;font-size:1.1em;/* Safari */ -webkit-transform: rotate(90deg); /* Firefox */ -moz-transform: rotate(90deg); /* Internet Explorer */ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);} /* FEEL FREE TO CUSTOMIZE THE FOLLOWING RULES */ dd p{line-height:120%} #accordion-3{width:650px;height:500px;padding:10px;opacity: 1;border:0px solid #000} #accordion-3 h2{ font-size:2em; margin-top:10px } #accordion-3 dl{width:650px;height:500px} #accordion-3 dt{height:37px;line-height:40px;text-align:right;padding:0px 10px 0 0;font-size:1.1em;font-weight:bold;font-family: Tahoma, Geneva, sans-serif;text-transform:uppercase;letter-spacing:1px;background: url(images/slide-title-inactive.png) 0 0 no-repeat;color:#919191} #accordion-3 dt.active{cursor:pointer;color:#fff;background: url(images/slide-title-active.png) 0 0 no-repeat} #accordion-3 dt.hover{color:#68889b;text-shadow: black 1px 1px 2px, white 0 0 1em;} #accordion-3 dt.active.hover{color:#fff} #accordion-3 dd{padding:25px;background:url(images/slide.jpg) bottom left repeat-x;border:0px solid ;border-left:0;margin-right:0px} #accordion-3 .slide-number{color:#68889b;left:0px;font-weight:bold} #accordion-3 .active .slide-number{color:#000} #accordion-3 a{color:#000} #accordion-3 dd img{float:right;margin:0 0 0 0px;position:relative;top:-20px} } JS /* * easyAccordion 0.1 - jQuery plugin * written by Andrea Cima Serniotti * [url]http://www.madeincima.eu[/url] * * Copyright (c) 2010 Andrea Cima Serniotti ([url]http://www.madeincima.eu[/url]) * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. * Built for jQuery library [url]http://jquery.com[/url] */ (function(jQuery) { jQuery.fn.easyAccordion = function(options) { var defaults = { slideNum: true, autoStart: false, slideInterval: 3000 }; this.each(function() { var settings = jQuery.extend(defaults, options); jQuery(this).find('dl').addClass('easy-accordion'); // -------- Set the variables ------------------------------------------------------------------------------ jQuery.fn.setVariables = function() { dlWidth = jQuery(this).width(); dlHeight = jQuery(this).height(); dtWidth = jQuery(this).find('dt').outerHeight(); if (jQuery.browser.msie){ dtWidth = $(this).find('dt').outerWidth();} dtHeight = dlHeight - (jQuery(this).find('dt').outerWidth()-jQuery(this).find('dt').width()); slideTotal = jQuery(this).find('dt').size(); ddWidth = dlWidth - (dtWidth*slideTotal) - (jQuery(this).find('dd').outerWidth(true)-jQuery(this).find('dd').width()); ddHeight = dlHeight - (jQuery(this).find('dd').outerHeight(true)-jQuery(this).find('dd').height()); }; jQuery(this).setVariables(); // -------- Fix some weird cross-browser issues due to the CSS rotation ------------------------------------- if (jQuery.browser.safari){ var dtTop = (dlHeight-dtWidth)/2; var dtOffset = -dtTop; /* Safari and Chrome */ } if (jQuery.browser.mozilla){ var dtTop = dlHeight - 20; var dtOffset = - 20; /* FF */ } if (jQuery.browser.msie){ var dtTop = 0; var dtOffset = 0; /* IE */ } // -------- Getting things ready ------------------------------------------------------------------------------ var f = 1; jQuery(this).find('dt').each(function(){ jQuery(this).css({'width':dtHeight,'top':dtTop,'margin-left':dtOffset}); if(settings.slideNum == true){ jQuery('<span class="slide-number">'+0+f+'</span>').appendTo(this); if(jQuery.browser.msie){ var slideNumLeft = parseInt(jQuery(this).find('.slide-number').css('left')) - 14; jQuery(this).find('.slide-number').css({'left': slideNumLeft}) if(jQuery.browser.version == 6.0 || jQuery.browser.version == 7.0){ jQuery(this).find('.slide-number').css({'bottom':'auto'}); } if(jQuery.browser.version == 8.0){ var slideNumTop = jQuery(this).find('.slide-number').css('bottom'); var slideNumTopVal = parseInt(slideNumTop) + parseInt(jQuery(this).css('padding-top')) - 12; jQuery(this).find('.slide-number').css({'bottom': slideNumTopVal}); } } else { var slideNumTop = jQuery(this).find('.slide-number').css('bottom'); var slideNumTopVal = parseInt(slideNumTop) + parseInt(jQuery(this).css('padding-top')); jQuery(this).find('.slide-number').css({'bottom': slideNumTopVal}); } } f = f + 1; }); if(jQuery(this).find('.active').size()) { jQuery(this).find('.active').next('dd').addClass('active'); } else { jQuery(this).find('dt:first').addClass('active').next('dd').addClass('active'); } jQuery(this).find('dt:first').css({'left':'0'}).next().css({'left':dtWidth}); jQuery(this).find('dd').css({'width':ddWidth,'height':ddHeight}); // -------- Functions ------------------------------------------------------------------------------ jQuery.fn.findActiveSlide = function() { var i = 1; this.find('dt').each(function(){ if(jQuery(this).hasClass('active')){ activeID = i; // Active slide } else if (jQuery(this).hasClass('no-more-active')){ noMoreActiveID = i; // No more active slide } i = i + 1; }); }; jQuery.fn.calculateSlidePos = function() { var u = 2; jQuery(this).find('dt').not(':first').each(function(){ var activeDtPos = dtWidth*activeID; if(u <= activeID){ var leftDtPos = dtWidth*(u-1); jQuery(this).animate({'left': leftDtPos}); if(u < activeID){ // If the item sits to the left of the active element jQuery(this).next().css({'left':leftDtPos+dtWidth}); } else{ // If the item is the active one jQuery(this).next().animate({'left':activeDtPos}); } } else { var rightDtPos = dlWidth-(dtWidth*(slideTotal-u+1)); jQuery(this).animate({'left': rightDtPos}); var rightDdPos = rightDtPos+dtWidth; jQuery(this).next().animate({'left':rightDdPos}); } u = u+ 1; }); setTimeout( function() { jQuery('.easy-accordion').find('dd').not('.active').each(function(){ jQuery(this).css({'display':'none'}); }); }, 400); }; jQuery.fn.activateSlide = function() { this.parent('dl').setVariables(); this.parent('dl').find('dd').css({'display':'block'}); this.parent('dl').find('dd.plus').removeClass('plus'); this.parent('dl').find('.no-more-active').removeClass('no-more-active'); this.parent('dl').find('.active').removeClass('active').addClass('no-more-active'); this.addClass('active').next().addClass('active'); this.parent('dl').findActiveSlide(); if(activeID < noMoreActiveID){ this.parent('dl').find('dd.no-more-active').addClass('plus'); } this.parent('dl').calculateSlidePos(); }; jQuery.fn.rotateSlides = function(slideInterval, timerInstance) { var accordianInstance = jQuery(this); timerInstance.value = setTimeout(function(){accordianInstance.rotateSlides(slideInterval, timerInstance);}, slideInterval); jQuery(this).findActiveSlide(); var totalSlides = jQuery(this).find('dt').size(); var activeSlide = activeID; var newSlide = activeSlide + 1; if (newSlide > totalSlides) newSlide = 1; jQuery(this).find('dt:eq(' + (newSlide-1) + ')').activateSlide(); // activate the new slide } // -------- Let's do it! ------------------------------------------------------------------------------ function trackerObject() {this.value = null} var timerInstance = new trackerObject(); jQuery(this).findActiveSlide(); jQuery(this).calculateSlidePos(); if (settings.autoStart == false){ var accordianInstance = jQuery(this); var interval = parseInt(settings.slideInterval); timerInstance.value = setTimeout(function(){ accordianInstance.rotateSlides(interval, timerInstance); }, interval); } jQuery(this).find('dt').not('active').click(function(){ jQuery(this).activateSlide(); clearTimeout(timerInstance.value); }); if (!(jQuery.browser.msie && jQuery.browser.version == 6.0)){ jQuery('dt').hover(function(){ jQuery(this).addClass('hover'); }, function(){ jQuery(this).removeClass('hover'); }); } }); }; })(jQuery); |
Часовой пояс GMT +3, время: 13:59. |