Slider v.1

20.04.2016

775

Реализуем простой в настройке, функциональный слайдер с навигацией и двумя эффектами перехода (затухание и перелистывание).

Подключение слайдера

Подключаем скрипт (если слайдер нужен на главной странице, то подключаем локально в шаблоне index.php)

<script type="text/javascript" src="<?php bloginfo('stylesheet_directory'); ?>/js/jquery.slides.min.js"></script>

Запускаем скрипт и настройки слайдера
if($(«div»).is(«#slides»)) {} — условие срабатывания скрипта, только при наличие в шаблоне данного класса

// Слайдер на главной

if($("div").is("#slides")) {

$(function() {
      $('#slides').slidesjs({
		
		
        width: 1000,
        height: 350,
		auto: true,
		play: {
		  effect: "fade",
		  //active: true,
          auto: true,
          interval: 10000,
          swap: true,
          pauseOnHover: true,
          restartDelay: 1000
        },
        navigation: {
          effect: "fade"
        },
        pagination: {
          effect: "fade"
        },
        effect: {
          fade: {
            speed: 800
          }
        },
		
	callback: {
		  
          loaded: function() {
			
		  setTimeout(function () {  $('.s-title p').show(), $('.s-title p').addClass('animated fadeIn');  }, 200);
			
          					 },
		  
          start: function() {
            
			$('.s-title p').hide(),
			$('.s-title p').addClass('animated fadeOut');
			
          					},
		  
          complete: function() {
			
            setTimeout(function () {  $('.s-title p').show(), $('.s-title p').removeClass('fadeOut'), $('.s-title p').addClass('animated fadeIn');  }, 200);
          					  
		  					   }
		  
        		  }
		
      });
	  
$(".slidesjs-next.slidesjs-navigation, .slidesjs-previous.slidesjs-navigation, .slidesjs-play.slidesjs-navigation, .slidesjs-stop.slidesjs-navigation").empty();	  
});

}

В callback назначаются jquery функции которые должны срабатывать при определенных событиях.

Если нужен эффект для слайдера перелистывание, нужно заменить в коде (выше) fade на slide в нескольких местах

HTML верстка слайдера

Слайдер может быть настроен на последние записи и т.д., действует на основе запроса get_posts.

<div id="slides">

<?php
global $post;
$args = array( 'posts_per_page' => 5, 'offset'=> 0 );
$myposts = get_posts( $args );
foreach( $myposts as $post ) : setup_postdata($post); ?>

<div>
<?php if( has_post_thumbnail() ) : ?>

<?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'has_post_thumbnail' );
$url = $thumb['0']; ?>

<div class="slide-div-pic" style="background-image: url(<?=$url?>);"></div>

<?php else : ?>

<div class="slide-div-pic" style="background-image: url(<?php bloginfo('template_url'); ?>/images/img-default-full.jpg);"></div>

<?php endif; ?>


<div class="s-title">

<!--<?php if( has_post_thumbnail() )
{the_post_thumbnail(square);}
else
{echo '<img src="'.get_bloginfo("template_url").'/images/img-default-square.jpg" />';}
?>-->
<br>

<a href="<?php the_permalink(); ?>"><p><?php the_title(); ?></p></a>

</div>


</div>


<?php endforeach; ?>

</div>

<?php wp_reset_postdata() ?>

CSS стили слайдера

/* Слайдер */

#index-slider {
    border: 1px solid #fff;
    overflow: hidden;
    float: left;
    width: 100%;
    position: relative;
    box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.4);
    box-sizing: border-box;
    margin-top: 5px;
}
  
#slides {display:none;}
  
.slidesjs-container {
    width: 100% !important;
    height: 350px !important;
    background-color: rgb(255, 255, 255);
}  
  
.slidesjs-control {width: 100% !important;}  
  
.slide-div-pic {
  height: 350px;
  background-size: cover;
  background-position: center;	
}  
  
.slidesjs-previous.slidesjs-navigation {
    position: absolute;
    left: 15px;
	opacity: 0;
    top: 46%;
	z-index: 99;
	color: white;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
  
.slidesjs-previous.slidesjs-navigation:after {  
    font-family: FontAwesome;
    font-size: 40px;
    content: '\f053';
}  
 
.slidesjs-next.slidesjs-navigation {
    position: absolute;
    right: 15px;
	opacity: 0;
    top: 46%;
	z-index: 99;
	color: white;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
	
}  
  
.slidesjs-next.slidesjs-navigation:after {  
    font-family: FontAwesome;
    font-size: 40px;
    content: '\f054';
}  
			
.slidesjs-next.slidesjs-navigation:hover, .slidesjs-previous.slidesjs-navigation:hover {text-decoration: none;}   
     
#slides:hover > .slidesjs-previous.slidesjs-navigation {opacity: 1; left: 30px;}   
  
#slides:hover > .slidesjs-next.slidesjs-navigation {opacity: 1; right: 30px;}   
  
.slidesjs-pagination-item {display: inline-block; list-style: none;} 
    
.slidesjs-pagination {
    position: absolute;
    z-index: 99;
    padding: 0;
    bottom: 10px;
    width: 100%;
    text-align: center;
}
  
.slidesjs-pagination-item a {
    width: 10px;
    height: 10px;
    background-color: rgba(255, 255, 255, 0);
    margin: 0 5px;
    display: block;
	text-indent: -9999px;
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2);
	border: 2px solid #FFF;
}  
	    
.slidesjs-pagination-item a.active {background-color: rgba(255, 255, 255, 1);}	  
   
.slidesjs-play.slidesjs-navigation {text-decoration: none;}  

.slidesjs-play.slidesjs-navigation:after {	 
font-family: FontAwesome;
font-size: 20px;	
content: "\f04b";	  
}			  
  
.slidesjs-stop.slidesjs-navigation {text-decoration: none;}
 
.slidesjs-stop.slidesjs-navigation:after {	 
font-family: FontAwesome;
font-size: 20px;	
content: "\f04d";	  
}
  
.slidesjs-slide img {width: 100%;}   
  
.s-title {
position: absolute;
bottom: 0px;
height: 45px;
left: 0px;
right: 0px;
text-align: left;
background-color: rgba(0, 0, 0, 0.7);
}
  
.s-title img {width: 100%; height: auto; float: left;}	  
  
.s-title a p {
/* border-left: 2px solid yellow; */
z-index: 99;
padding-left: 30px;
box-sizing: border-box;
position: absolute;
display: none;
color: #fff;
font-size: 16px;
line-height: 48px;
bottom: 0px;
}

Тэги:

Поделится информацией с друзьями

  • Похожие записи
  • Комментарии
  • Вложения
Incredibly Basic Slider

Incredibly Basic Slider

Один из вариантов реализации простого слайдера. Слайдер для изображений (с текстом не пробовал). Из преимуществ — полнейшая адаптивность. Скрипт <script> jQuery(document).ready(function ($) { timer = setInterval(function () { moveRight(); }, Читать далее »

Простой слайдер jquery

Простой слайдер jquery

Постоянно нахожусь в поиске простого, но эффективного слайдера. Здесь представлен один из вариантов. Скрипт в подвал <script type="text/javascript"> var slideWidth=330; var sliderTimer; $(function(){ $('.slidewrapper').width($('.slidewrapper').children().size()*slideWidth); sliderTimer=setInterval(nextSlide,4000); $('.viewport').hover(function(){ clearInterval(sliderTimer); },function(){ sliderTimer=setInterval(nextSlide,4000); }); Читать далее »

Slider v.2

Slider v.2

Доработал Slider v.1 добавив в него несколько функций: отдельный тип записей — слайды, ссылка со слайда. Сам скрипт слайдера остался прежним. Тип записей Слайды add_action( 'init', 'register_post_type_slide' ); function register_post_type_slide() Читать далее »

Добавить комментарий

Пока нет комментариев. Будь первым!

Slider v.1
Навигация
Рекомендации для васНавигацияOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.