• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Spezieller Hovereffekt..

bobomampf

Mitglied
Hey Leute.. Ich brauch Hilfe von euch.. Ich suche schon die ganze Zeit verzweifelt. Ein normaler Mouseover ist ja kein Problem, aber ich will dass sich bei einem Mouseover das Bild das nur zu 50% sichtbar ist nach oben fährt und somit die andere Hälfte des Bildes sichtbar wird. Also alles fliesend.. Hier mal das Bild. Es soll immer eine Hälfte davon zu sehen sein und das mit fliesendem Übergang..

vohz9zmhrnjq.png
 
Werbung:
Weisst du sicher, ob der Animator das kann was ich brauche.. Ich kenne mich nämlich mit jQuery nicht so richtig aus und bräuchte ein fertiges Template.. :/
 
Werbung:
genau das kannst du mit wenigen Zeilen in jQuery hinkriegen:

$(deinElement).hover(
function(){
$(this).animate({
"margin-top": "-50px"
}, 500)
},
function(){
$(this).animate({
"margin-top": "0px"
}, 500)

});

so sollte es denke ich mal funktionieren. (Natürlich musst du deinElement ersetzen)

grüsse, Webdesigner95
 
Werbung:
Werbung:
Kann ich da jetzt auch mehrere gleich große Bilder reinhauen?
Verstehe nicht ganz, wie Du das meinst. Möchtest Du den Effekt unabhängig auf verschiedene Bilder anwenden? Dann müsste man es wahrscheinlich mit Objekten realisieren, weil die Variablen ja unabhängig sein müssten.
 
Hier noch eine Variante mit jQuery.

Code:
<!DOCTYPE html>

<html lang="en">

    <head>
        <meta charset="utf-8" />
        <title>New</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
        <style type="text/css">

            .nav {
                list-style: none;
            }

            .nav li {
                float: left;
            }

            .nav li a {
                background: url('vohz9zmhrnjq.png') 0 0;
                display: block;
                width: 90px;
                height: 45px;
            }

        </style>
        <script type="text/javascript">

/**
 * @author Alexander Farkas
 * @link http://snook.ca/archives/javascript/jquery-bg-image-animations/
 * @license ?
 * v. 1.02
 */
(function($) {
	$.extend($.fx.step,{
	    backgroundPosition: function(fx) {
            if (fx.state === 0 && typeof fx.end == 'string') {
                var start = $.curCSS(fx.elem,'backgroundPosition');
                start = toArray(start);
                fx.start = [start[0],start[2]];
                var end = toArray(fx.end);
                fx.end = [end[0],end[2]];
                fx.unit = [end[1],end[3]];
			}
            var nowPosX = [];
            nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
            nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
            fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

           function toArray(strg){
               strg = strg.replace(/left|top/g,'0px');
               strg = strg.replace(/right|bottom/g,'100%');
               strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
               var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
               return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
           }
        }
	});
})(jQuery);


$(document).ready(function () {
$('.nav a')
	.css( {backgroundPosition: "0 0"} )
	.mouseover(function(){
		$(this).stop().animate(
			{backgroundPosition:"(0px -50px)"},
			{duration:300})
		})
	.mouseout(function(){
		$(this).stop().animate(
			{backgroundPosition:"(0 0)"},
			{
                duration:300,
                complete:function(){
                    $(this).css({backgroundPosition: "0 0"})
                }
            }
        )
    });
	
});

        </script>
    </head>

    <body>
        <ul class="nav">
            <li><a href="./"></a></li>
            <li><a href="./"></a></li>
            <li><a href="./"></a></li>
            <li><a href="./"></a></li>
        </ul>

    </body>

</html>
 
Werbung:
Zurück
Oben