Blog


Smooth effect scroll Only JS

Hace unos días necesitaba un efecto de scroll únicamente en JavaScript (para una versión móvil de una landing) y encontré esto que me a resultado muy util.

function elmYPosition(eID) {
    var elm = document.getElementById(eID);
    var y = elm.offsetTop;
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y += node.offsetTop;
    } return y;
}
function currentYPosition() {
    // Firefox, Chrome, Opera, Safari
    if (self.pageYOffset) return self.pageYOffset;
    // Internet Explorer 6 - standards mode
    if (document.documentElement && document.documentElement.scrollTop)
        return document.documentElement.scrollTop;
    // Internet Explorer 6, 7 and 8
    if (document.body.scrollTop) return document.body.scrollTop;
    return 0;
}
function smoothScroll(eID) {
    var startY = currentYPosition();
    var stopY = elmYPosition(eID);
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    if (distance < 100) { scrollTo(0, stopY); return; } var speed = Math.round(distance / 100); if (speed >= 20) speed = 20;
    var step = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    if (stopY > startY) {
        for ( var i=startY; i<stopY; i+=step ) { setTimeout("window.scrollTo(0, "+leapY+")", timer * speed); leapY += step; if (leapY > stopY) leapY = stopY; timer++;
        } return;
    }
    for ( var i=startY; i>stopY; i-=step ) {
        setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
        leapY -= step; if (leapY < stopY) leapY = stopY; timer++;
    }
}

Para utilizarla es necesario declarar smoothScroll(ID);




Iframe de difertentes dominios

Cuando queremos hacer un iframe en nuestra web de otra web, es posible que nos encontremos que el navegador bloquea el iframe porque los dominios son distintos, para solucionar podemos usar el siguiente código:

<iframe width="270" height="419" frameborder="0" target="_top" name="google" src="#" scrolling="no"></iframe>
<script>
var load = true;
document.getElementsByName('google')[0].onload = function() {
 if (load){
 frames[0].location = 'http://www.vasili.es';
 }
 load = false;
}
</script>



Receta: Hamburguesas de soja y cebolla

Esta es una receta sencilla y fácil.

Ingredientes

  • Ajos
  • Cebollas
  • Soja hervida
  • Anacardos crudos.
  • Maicena
  • Pan rallado.
  • Aceite de oliva.
  • Especias al gusto: pimienta, pimentón picante, 4 pimientas, curry, ajo en polvo…

Cortamos la cebolla, los ajos y lo anacardos crudos para poder freírlos un poco, que quede dorado. Los ajos si no nos gustan, recomiendo cortarlos a trozos grandes para poder apartarlos luego, pero dan un buen sabor. Lo freímos todo con un con aceite de oliva.

Mientras, aplastamos la soja para hacer una pasta (como cuando aplastamos los garbanzos para hacer humus).

Una vez tenemos la cebolla/ajos/anacardos fritos y la soja aplastada, lo unimos todo haciendo una pasta uniforme. Ahora es el momento de especiar, yo he preferido darle un toque a pimienta, y he utilizado 4 pimientas y pimentón picante.

A la masa le añadimos un poco de maicena (cuidado, no pasarse). Lo volvemos a mezclar todo y empezamos a darles forma de hamburguesas, o la forma que nos guste: rombos, media luna, caras… ahora rebozamos la hamburguesa con pan rallado. Solo nos queda freírlas y servir.

También podemos congelar las hamburguesas para otra ocasión.

Para gustos…: cuando cortamos la cebolla o aplastamos la soja podemos usar un batidora, en mi caso, prefiero cortarlo a mano, y tener la textura de que es cada cosa.




Licencia para contaminar – Licencia para matar

Estaba muy claro cuando explotó el caso Volkswagen, esto no es único de ellos, sino que es común para todos, nadie está cumpliendo la normativa, sino, no se explica como ahora van a aumentar el porcentaje de contaminación.

Somos muy muy idiotas, cuando tenemos que reducir la contaminación, trabajar en energías limpias…  llegan los que mandan en este planeta, las empresas, es decir, el cash, y dicen lo que vamos a hacer, para que estos no sufran perdidas.

contaminacion

Mientras otros buscan la manera de contaminar menos, tener un aire que respirar, una vida digna, sin depender de una mascarilla, como pasa en algunos países, aquí pedimos aumentar hasta el 60% la contaminación permitida de los diésel.




El Cásting más Bestia


 

El cásting más Bestia from Silvia Go on Vimeo.




Header Location en JavaScript

En PHP

header('Location: http://www.example.com/');

y en JS

<script>window.location.replace("http://www.example.com/");</script>

Cuando no podamos usar header de php (porque ya se ha cargado la web) podemos usar JavaScript.




Sumar valores de un multigimensional Array

En ocasiones nos encontramos con un array como el siguiente

[0] => Array
    (
        [id] => 95659865986
        [name] => test
        [cantidad] => 20.00
    )
[1] => Array
    (
        [id] => 95659865987
        [name] => test2
        [cantidad] => 28.00
    )

y queremos suma ‘cantidad’ de todo el array. Podriamos recorrer el array y guardarnos el valor en una variable

$sum = 0;

foreach($array as $num => $values) {
    $sum += $values[ 'cantidad' ];
}

o también podemos usar un array_sum

$sum = array_sum(array_column($array, 'cantidad'));

array_column esta disponible desde PHP 5.5, pero si teneis una versión antigua de PHP podeis usar array_column por ramsey




DataTables Descuadre de columnas

Cuando tenemos una tabla oculta, por ejemplo con tabs de bootstrap, pero al estar oculta no calcula bien los anchos y podemos encontrarnos que el thead y el tfood estan descuadrados respecto al tbody.

La solución es re-calcular el tamaño de la tabla.

    $(document).ready(function() {
        $("#tabs").tabs( {
            "activate": function(event, ui) {
                $( $.fn.dataTable.tables( true ) ).DataTable().columns.adjust();
            }
        });
    });

También tendríamos que re-calcular la tabla al acabar de cargar la pagina.

    $(window).load(function() {
        $( $.fn.dataTable.tables( true ) ).DataTable().columns.adjust();        
    });



ternary operator

A menudo nos encontramos que tenemos que usar un if else en alguna situación que sería un poco incómodo tener que trabajar con if(){} else {} por ejempo si queremos ocultar o mostrar alguna parte de codigo html.

<button <? if($val == 1){ ?> class=”active”<? } ?> > button </button>

es por esto que podemos usar formas simplificadas de los if

<button <?=($val == 1 ? ‘class=”active”’ : ‘’ )?> button </button>

también podemos tener el caso de que queremos mostrar una tabla, que completamos con un for, while, … o cualquier otro bucle, y queremos mostrar los valores. Podemos tener casos de que todas las columnas a completar alguna quede vacía (porque no tiene valor) y decidamos que no queremos columnas vacías, y las queramos rellenar con un 0. Para esto lo común es un number_format, un if, sumarle 0 (chapuza), etc… pero cómo quiero que quede un código entendible y no que una etiqueta html tenga una parrafada de php tengo una solución muy sencilla

$val ?: 0

Este código muestra $val y cuando $val no existe muestra un 0, estamos sustitullendo el siguiente codigo

if($val){ echo $val; } else { $echo 0; }

Tambien podriamos combinar varias operaciones

$valid = true;

$lang = 'french';

$x = $valid ? ($lang === 'french' ? 'oui' : 'yes') : ($lang === 'french' ? 'non' : 'no');

echo $x; // outputs 'oui'



400 millones de razones

400 millones de razones para seguir siendo vegano!

http://latestvegannews.com/400-million-fewer-animals-were-killed-for-food-last-year-because-people-are-eating-less-meat/

2015-03-25