New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

angular-pea-slider

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-pea-slider

Pea Slider - Image Slider para AngularJS ===========

1.7.0
latest
Source
npm
Version published
Maintainers
1
Created
Source

Pea Slider - Image Slider para AngularJS

Demo: http://peaslider.felipemengatto.com/

Requisitos:

AngularJS

Instalação Manual:

Html:

	JS:
	<script src="../dist/angular-pea-slider.min.js"></script>
	
	CSS:
	<link rel="stylesheet" href="../dist/css/style-pea.min.css"/>

Instalação Bower:

bower install angular-pea-slider --save

Module:

var app = angular.module('appSite', ['pea-slider']);

CSS ( src/css/style-pea.min.css ):

/* pea slider*/

peaslider{
	width: 100%; 
	height: 300px;
	z-index: 1000;
	position: relative;
	float: left;
}

slide-content{
	-webkit-animation: fadein 1s both;
	-o-animation: fadein 1s both;
	-moz-animation: fadein 1s both;
	animation: fadein 1s both;
}

slide-content img {
	width: 100%;
	height: 300px;
}

pea-desc{
	width: 393px;
	padding: 50px;
	text-align: right;
	top: 0px;
	left: 0px;
	font-size: 18px;
	color: #FFF;
	background: rgba(0, 0, 0, 0.8) none repeat scroll 0% 0%;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	position: absolute;
}

.pea-slider-loading{
	background: url(pea-imagem/loading.gif) no-repeat bottom right;
}

.is-hidden-img{
	display: none;
}

peaslider button{
	outline: none;
	border: none;
	cursor: pointer;
	position: absolute;
	top: 40%;
}

.fadeout{
	-webkit-animation: fadeout 1s both;
	-o-animation: fadeout 1s both;
	-moz-animation: fadeout 1s both;
	animation: fadeout 1s both;
}

/* normal */
@keyframes fadein{
	from{
		opacity: 0;
	}

	to{
		opacity: 0.1;
	}
	to{
		opacity: 0.2;
	}
	to{
		opacity: 0.4;
	}
	to{
		opacity: 0.6;
	}
	to{
		opacity: 0.8;
	}
	to{
		opacity: 1;
	}
}

@keyframes fadeout{
	to{
		opacity: 0;
	}
}

/* Chrome, Safari, Opera */
@-webkit-keyframes fadein{
	from{
		opacity: 0;
	}

	to{
		opacity: 0.1;
	}
	to{
		opacity: 0.2;
	}
	to{
		opacity: 0.4;
	}
	to{
		opacity: 0.6;
	}
	to{
		opacity: 0.8;
	}
	to{
		opacity: 1;
	}
}

/* Chrome, Safari, Opera */
@-webkit-keyframes fadeout{
	to{
		opacity: 0;
	}
}

.pea-next{
	width: 55px;
	height: 69px;
	background: url(pea-imagem/setas-slide.png) no-repeat -55px 0px;
	right:0px;
}

.pea-prev{
	width: 55px;
	height: 69px;
	background: url(pea-imagem/setas-slide.png) no-repeat 0px 0px;
	left:0px;
}

/* pea-slider */

Estrutura Simples:

<peaslider><!-- peaslider -->

    <slide-content>
		<img ng-src="" class="is-hidden-img"/>
    </slide-content>

    <slide-images>
        <slide-img ng-repeat="{{ regra }}" img-src="web-files/images/{{item.imagem}}" repeat-end="onEnd();">
        </slide-img>
    </slide-images>

    <button class="pea-prev" ng-click="sliderPrev();"></Button>
    <button class="pea-next" ng-click="sliderNext();"></Button>

</peaslider><!-- peaslider -->

Rotate Automático:

Para o Pea Slider fazer a Transição entre Imagens Automaticamente ,
basta Adicionar o Atributo ROTATE no elemento <peaslider>
Ex:

<peaslider rotate="8000"><!-- peaslider -->

    <slide-content>
		<img ng-src="" class="is-hidden-img"/>
    </slide-content>

    <slide-images>
        <slide-img ng-repeat="{{ regra }}" img-src="web-files/images/{{item.imagem}}" repeat-end="onEnd();">
        </slide-img>
    </slide-images>

    <button class="pea-prev" ng-click="sliderPrev();"></Button>
    <button class="pea-next" ng-click="sliderNext();"></Button>

</peaslider><!-- peaslider -->

Descrição na Imagem:

Para aparecer a DESCRIÇÃO na imagem no Pea Slider,
basta Adicionar o Atributo DESCRIBE=" TRUE " no elemento <peaslider>,
Adicionar a linha: <pea-desc ng-bind="describe" class="is-hidden-img"></pea-desc> dentro do <slide-content>,
Adicionar o Atributo IMG-DESC=" TEXT " no elemento <slide-img>.
Ex:

<peaslider rotate="8000" describe=" true OR false "><!-- peaslider -->

    <slide-content>
		<img ng-src="" class="is-hidden-img"/>
    	<pea-desc ng-bind="describe" class="is-hidden-img"></pea-desc>
    </slide-content>

    <slide-images>
        <slide-img ng-repeat="{{ regra }}" img-desc="{{item.descricao}}" img-src="web-files/images/{{item.imagem}}" repeat-end="onEnd();">
        </slide-img>
    </slide-images>

    <button class="pea-prev" ng-click="sliderPrev();"></Button>
    <button class="pea-next" ng-click="sliderNext();"></Button>

</peaslider><!-- peaslider -->

Modulo do Pea Slider ( src/angular-pea-slider.js ):

'use strict';

// nome do Modulo
var slider = angular.module("pea-slider", []);

// nome da directive a ser chamada na pagina
slider.directive("peaslider", ['$timeout', function ($timeout) {
   return {
      restrict: "E",
      scope: true,
      link: function (scope, elem, attrs) {

        //starting slider
        scope.onEnd = function(){
          //pequeno delay de iniciação
          $timeout(settings, 100);
        }

        //settings
        var settings = function(){

            //quando for ELEMENTO - inicia com ELEM
            //quando for ATRIBUTO - inicia com ATTR

            //vars        // fadein     // fadeout
            var config = {'delay': 100, 'duration': 1200 };
            var elemPeaSlider = elem;
            var elemSlider = elem.find('slide-content');
            var elemImgSrc = elem.find('img');
            var elemPeaDesc = elem.find('pea-desc');
            var elemSlideSrc = elem.find('slide-img');
            var vectorSlide = elemSlideSrc.length;
            var num = 0;
            var pull = null;
            var rotate = 0;
            var rotateMin = 4999;
            var describeActive = false;

            //
            //  CONFIGURAÇÕES INICIAIS \/
            // 

            //definindo primeira imagem a ser carregada
            prevAndNext(num);

            //definindo se rotação irá acontecer
            rotate          = elemPeaSlider.attr('rotate');
            //define se havera descricao nas imagens
            describeActive  = elemPeaSlider.attr('describe');

            //
            //  CONFIGURAÇÕES DE TRANSIÇÃO DE SLIDES \/
            // 

            //next image Function
            scope.sliderNext = function (){

              //incremente se for num+1 (tamanho do vetor) volta ao inicio
              if (num+1 == vectorSlide){
                  num = 0;
                }else{
                  num++;
              }

              prevAndNext(num);

            }

            //prev image Function
            scope.sliderPrev = function (){

                //decrementa se for igual a zero vai para o ultimo
                if(num == 0){
                  num = vectorSlide-1;
                }else{
                  num--;
                }

                prevAndNext(num);

            }

            // func PREV AND NEXT
            function prevAndNext(num){
                //gera link 
                var attrImgLink = elemSlideSrc.eq(num).attr('img-src');
                //gera descricao
                var attrImgDesc = elemSlideSrc.eq(num).attr('img-desc');

                  //adiciona classe de fadeOUT
                  var timeFadeout = $timeout(function(){
                                      //add class
                                      elemSlider.addClass('fadeout');
                                      elemPeaSlider.addClass('pea-slider-loading');
                                      //Cancela Timout
                                      $timeout.cancel(timeFadeout);
                                    }, config.delay);

                  //remove classe de fadeOut
                  var timeFadein = $timeout(function(){

                                      //muda URL da imagem
                                      elemImgSrc.attr('src', attrImgLink);
                                      //muda descricao
                                      scope.describe = attrImgDesc;

                                      //verifica quando a imagem foi carregada e remove classe para fazer o FadeIN
                                      elemImgSrc.bind('load', function() {
                                                    //remocoes de classe
                                                     elemImgSrc.removeClass('is-hidden-img');
                                                     elemSlider.removeClass('fadeout');
                                                     elemPeaSlider.removeClass('pea-slider-loading');
                                                    //Verifica Descricao
                                                     descricaoVerify(describeActive, attrImgDesc);
                                                    //cancela timout
                                                     $timeout.cancel(timeFadein);
                                                  });
                                  
                                    }, config.duration);


                //verifica se rotate está ativo;
                rotateVerify();

            }

            //
            //  CONFIGURAÇÕES DE ROTAÇÃO COM TEMPO \/
            //

            //chama função de rotação a primeira vez;
            rotateVerify();

            //verifica se rotate Está ativado se sim ativa e não deixa normal
            function rotateVerify(){

              if (rotate > rotateMin) {

                  if (pull != null) {
                    $timeout.cancel(pull);
                  }

                 pull = $timeout(scope.sliderNext, rotate);
              }

            }

            //pause no rotate - quando mouse over
            elemPeaSlider.bind('mouseover', function() {
                 $timeout.cancel(pull);
            });

            //return de rotação  - quando mouse out
            elemPeaSlider.bind('mouseout', function() {
                 rotateVerify();
            });

            //
            // CONFIGURAÇÕES DE DESCRICAO DAS IMAGENS
            //

            //verifica se havera desc e se esta tudo OK com suas instalações 
            function descricaoVerify(active, desc){

                if (active === "true" && desc != "") {

                  if (elemPeaDesc.length > 0 && desc != undefined) {
                    elemPeaDesc.removeClass('is-hidden-img');
                  }else if(desc == undefined){
                    alert('Falta o Atributo img-desc="{{value}}" na TAG slide-img !');
                  }else{
                    alert('Falta o Elemento: <pea-desc ng-bind="describe" class="is-hidden-img"></pea-desc> !');
                  }

                }else{
                  elemPeaDesc.addClass('is-hidden-img');
                }

            }

        }

      }

   };
}]);

//directive que verifica qual o ultimo item da repetição e manda iniciar slider
slider.directive("repeatEnd", [function(){
    return {
        restrict: 'A',
        scope: true,
        link: function (scope, element, attrs) {

            //verifica se é ultimo item do ng-repeat ( mandando executar a função no item)
            if (scope.$last) {
                scope.$eval(attrs.repeatEnd);
            }

        }
    };
}]);

FAQs

Package last updated on 28 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts