чтобы слой появлялся/исчезал при каких то событиях, сделать несложно, нужно только немного JavaScript
А вот с плавностью уже сложнее, это графический эффект и его достичь можно только с помощью Java Applet-а,
последнее можно
здесь поискать и на иных подобных сайтах (только учтите, что у многих отключено загрузка подобных апплетов)