Pregunta

So, I've been trying to make a textbox blink 3 times, with a glow effect. But i can only make it blink once.

Can some one look at this, and maybe help me here ?

HTML

<input id="asktextsearch" name="search" type="text" placeholder="bla bla" />

CSS

#asktextsearch{
    height: 20px;
    width: 440px;
    font-size: 12px;
    color: Grey;
    border: thin solid #CACACA;
    //margin-top: 60px;
    /* [disabled]border-radius: 10px 10px 10px 10px; */

    outline:none;
    transition: all 0.25s ease-in-out;
    -webkit-transition: all 0.25s ease-in-out;
    -moz-transition: all 0.25s ease-in-out;
}

#asktextsearch:focus {
    box-shadow: 0 0 5px rgba(209, 27, 28, 1);
    -webkit-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
    -moz-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
}

JQuery

    for(i=0;i<3;i++){
        alert(i);
        $('#asktextsearch').focus();
        //$('#asktextsearch').addClass(':focus');
    };
¿Fue útil?

Solución

LIVE DEMO

JS:

$(function(){

    var count    = 0, 
        $input   = $('#asktextsearch'), 
        interval = setInterval(function() {

    if ($input.hasClass('blur')) {

          $input.removeClass('blur').addClass('focus'); 
          ++count;

    } else {

          $input.removeClass('focus').addClass('blur');
    }

       if (count === 3) { 

           clearInterval(interval); 
       }

    }, 300);
});

Otros consejos

Maybe something like that CSS

#asktextsearch{
height: 20px;
width: 440px;
font-size: 12px;
color: Grey;
border: thin solid #CACACA;
//margin-top: 60px;
/* [disabled]border-radius: 10px 10px 10px 10px; */

outline:none;
transition: all 0.25s ease-in-out;
-webkit-transition: all 0.25s ease-in-out;
-moz-transition: all 0.25s ease-in-out; }

#asktextsearch.focus {
box-shadow: 0 0 5px rgba(209, 27, 28, 1);
-webkit-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
-moz-box-shadow: 0 0 5px rgba(209, 27, 28, 1);  }

JS

var count = 0;
var p = setInterval(function(){
if(count==6) 
    window.clearInterval(p);
$('#asktextsearch').toggleClass("focus");
count++;    
},500);
#asktextsearch{
height: 20px;
width: 440px;
font-size: 12px;
color: Grey;
border: thin solid #CACACA;
//margin-top: 60px;
/* [disabled]border-radius: 10px 10px 10px 10px; */

outline:none;
transition: all 0.25s ease-in-out;
-webkit-transition: all 0.25s ease-in-out;
-moz-transition: all 0.25s ease-in-out;
}

.blink {
box-shadow: 0 0 5px rgba(209, 27, 28, 1);
-webkit-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
-moz-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
}

And in the javascript:

for(i=1; i <= 5; i++){           
    $('#asktextsearch').focus();
    setTimeout(function(){
       $('#asktextsearch').toggleClass('blink');
    }, (300 * i));
 }

Hope it helps !!! I have drafted the code with limited understanding, you can customise the code as your needs.

   var counter = 0;
   var ID;
      $(document).ready(function() {
           $("#asktextsearch").focus(function(){
              counter = 0;
                  $(this).addClass('focusing');
                    setTimer();
                 });       
      });

  function setTimer(){          
        ID = setInterval(function () {
                startSlider(counter);
               counter++;
               console.log(counter);
            }, 4000);  // adjust delay here     

     }

function startSlider(){
    if(counter>3){
        stopFocus();
        clearInterval(ID);          
    }else{
     $('#asktextsearch').toggleClass('focusing'); 
    }
}

function stopFocus() {
    $("#asktextsearch").removeClass('focusing');
}

css:

  #asktextsearch{
      height: 20px;
      width: 440px;
      font-size: 12px;
      color: Grey;
      border: thin solid #CACACA;
      outline:none;
      transition: all 0.25s ease-in-out;
      -webkit-transition: all 0.25s ease-in-out;
      -moz-transition: all 0.25s ease-in-out;
  }

  .focusing {
      box-shadow: 0 0 5px rgba(209, 27, 28, 1);
      -webkit-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
      -moz-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
  }

Demo link: http://jsfiddle.net/7ABNY/

css:

#asktextsearch{
    height: 20px;
    width: 440px;
    font-size: 12px;
    color: Grey;
    border: thin solid #CACACA;
    //margin-top: 60px;
    /* [disabled]border-radius: 10px 10px 10px 10px; */
    outline:none;
    transition: all 0.25s ease-in-out;
    -webkit-transition: all 0.25s ease-in-out;
    -moz-transition: all 0.25s ease-in-out;
}

#asktextsearch:focus {
    box-shadow: 0 0 5px rgba(209, 27, 28, 1);
    -webkit-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
    -moz-box-shadow: 0 0 5px rgba(209, 27, 28, 1); 
}
        .blink {
            animation: blink 1.5s steps(3, start) 3;
            }

        @keyframes blink {
             to {
             visibility: hidden;
                }
            }

html:

<div class="blink">
            <input id="asktextsearch"  name="search" type="text" placeholder="bla bla" />
    </div>

demo:http://jsfiddle.net/rakeshgajjar/TNDyL/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top