Antworten auf deine Fragen:
Neues Thema erstellen

Javascrip Animationen werden nicht wiedergegeben

WebmanInSpace

Noch nicht viel geschrieben

Hey Leute

Ich bin neu hier in Forum und habe folgendes Problem:

Als ich eine JS Animation in meiner Seite einfügte (JS Animation habe ich zuvor in einem externen Testseite gestestet und sie hat funktioniert) funktionierte sie einfach nicht mehr. (beim div-container ist display auf none und die animation realisiere ich über slideToggle. Der zu animierende div container ist in weiteren div container untergebracht alle sind aber mit unterschiedlichen classes bennent)

Wäre froh um einen Rat.
 

owieortho

Aktives Mitglied

Willkommen,

damit Du brauchbare Tipps bekommen kannst, braucht es mehr Infos, e. g. Quelltexte bzw. Beispielseiten, mithin auch Infos über die/den verwendeten Browser und erwünschtes Verhalten. All das müsste bis jetzt erraten werden und von einigen Foristen würdest Du schmunzelnde Verweise auf die verschiedenen Glaskugeln bekommen, die gerade ausgeliehen, in Reparatur, etc. sind..

Viel Erfolg
O.
 

WebmanInSpace

Noch nicht viel geschrieben

Ja gut in diesem Fall werde ich einmal genauer:
Ich will in einem Div Container (header) im linken oberen Ecken ein Lupen Symbol haben, welches beim raufklicken eine textbox ausfährt (die in einem weiteren div Container ist) diese Textbox soll über die gegen rechts ausgefahren werden (wäre aber auch egal wenn es von einer anderen Richtung wäre...) und im ausgefahrenen Zustand die anderen Navigationspunkte überdecken (Bild im Anhang). Das Lupen Symbol sollte zudem zu einem Kreuz geändert werden um dieses Div auch wieder zurück zu fahren.

Es sollte mit möglichst vielen Browsern funktionieren. (Ich verwende zum debuggen IE, Chrome, Firefox und Opera.)

Die Funktion habe ich (wie schon oben beschrieben programmiert, sobald ich sie aber in die Webpage eingebunden habe hat es einfach nicht mehr funktioniert)


Gruss
 

owieortho

Aktives Mitglied

Alles klar,
in Zeile 23 Deines Javascripts fehlt ein Semikolon und die ElementId in Zeile 26 ist nicht im HTML ausgewiesen....
Merkste was?
O.
 

WebmanInSpace

Noch nicht viel geschrieben

Ja gut der Code ist eben einfach ziemlich lang:

JS:
Javascript:
$(document).ready(function(){
    $(".btn_lupe").click(function(){
        $("#searchbar").slideToggle("slow");
    });
});

HTML:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>
        </title>
      
        <link rel="stylesheet" href="main.css"/>
        <link rel="stylesheet" href="font.css"/>
        <script type="text/javascript" src="search.js"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/latest/jquery.js"></script>
      
    </head>
       <body>
            <div class="header">
                <div class="header_content">
                       <div class="header_content_logo">
                    </div>
                    <div class="header_content_link">
                        <a href="index.html" class="active">HOME</a>
                            <tab>
                        <a>WORKS</a>
                            <tab>
                        <a>CLIENTS</a>
                            <tab>
                        <a>SING IN</a>
                               <tab>
                        <a href="#" class="btn_lupe"></a>
                      </div>
                </div>
            </div>
                                  <div id="searchbar">
                          hallo
                      </div>
    </body>
</html>

CSS:
CSS:
body{
    font-size: 13px;
    text-decoration: none;
}
div.header{
    background-color: #181818;
    height: 600px;
    position: fixed;
    margin-left: -10%;
    margin-right: -10%;
    width: 120%;
    top: -5px;
}
div.header_content{
    position: relative;
    left: 50%;
    top: 61px;
}
div.header_content_link{
    position: relative;
    left: 200px;

}
a{
    text-decoration: none;
    font-family: Lato;
    color: white;
    text-transform: uppercase;
}
a:hover{
    border-bottom: 2px solid #938782;
    padding-bottom: 9px;
    transition: 0.5s ease;
}
a.active{
    border-bottom: 2px solid #938782;
    padding-bottom: 9px;
}
tab{
    padding-left: 40px;
}
a.btn_lupe{
    margin-top: -18px;
    margin-left: 360px;
    height: 17px;
    width: 20px;
    background: url(src_btn.png) no-repeat;
    background-size: 17px;
    display: block;
    position: relative;

}
#searchbar{
    background: grey;
    left: 50%;
    margin-left: 175px;
    margin-top: 44.5px;
    height: 39px;
    width: 370px;
    display: none;
    position: relative;
    z-index: 1000;
}
 
Zuletzt bearbeitet:

WebmanInSpace

Noch nicht viel geschrieben

Das ist die oben gepostete JS Datei:

search.js
Javascript:
$(document).ready(function(){
    $(".btn_lupe").click(function(){
        $("#searchbar").slideToggle("slow");
    });
});
 

Myhar

Hat es drauf

Du verwendest einen Link, warum keinen Button? Verwende auch niemals href="#". Wenn du die Funktion eines Links mit JS ändern willst, dann ist mein erster Tipp: Verhindere, dass das Standard-Event abgefeuert wird. (Das musst du aber auch mit einem button machen) Stichwort dafür für Suchmaschinen: preventdefault.
 

WebmanInSpace

Noch nicht viel geschrieben

Vielen Dank.
Ich habe nun einen Button erstellt (class etc. beibehalten) und es tut sich immer noch nichts. Dieses Problem ist mir jetzt schon mehr mals aufgetreten, auch andere Animationen wie z.B. eifachen fadeIns.
Ich habe mich für Links entschieden weil ich alles im header mit solchen Links gemacht habe aber wenn das einige Fehler vermeidet, werde ich nun mehr auf buttons setzen.

Selbst der Teil mit dem preventDefault() hat nicht funktioniert. (Diesen habe ich jedoch direkt ins HTML-Dokument integriert)

Ich bin eben in JS noch neu, habe aber schon einige Animationen erstellt die funktionierten.

Gruss
 

Myhar

Hat es drauf

Wenn es ein Link ist, dann verwende Links. Ist es ein Button (um etwas ein- und auszuschalten, etc.) dann verwende einen Button. Prinzipiell kannst du auch nur links verwenden, aber heutzutage kannst du buttons stylen wie du willst.
preventDefault() hat nicht funktioniert <-- ja das ist mal eine Fehlerbeschreibung. Das ist Javascript, hat also nix im HTML Teil zu suchen. Mehr kann man aufgrund deiner dürftigen Infos nicht sagen.
 

WebmanInSpace

Noch nicht viel geschrieben

Ja das mit dem Button habe ich jetzt ja gemacht!


Das ist Javascript, hat also nix im HTML Teil zu suchen.
Das ist mir auch klar. Ich habe es aber in mein HTML DOKUMENT EINGEBUNDEN (mit <script> ... </script>):

Javascript:
<script language="javascript" type="text/javascript">
document.getElementById("preventDefault").addEventListener("click", function(event){
    event.preventDefault()
});
</script>
(id="preventDefault" ist mit dem Button verlinkt)

In meiner Seite funktionieren sämtliche JS funktionen irgendwie nicht.
 

Myhar

Hat es drauf

Wenn sämtliche JS nicht funktionieren, dann hast du Js vielleicht deaktiviert? Was passiert, wenn du das JS in der Konsole ausführst? Was ist, wenn du ein einfaches console.log("test") ausführst? Wird das korrekt in die Konsole geschrieben?
Es ist aus deinem JS-Code leider nicht ersichtlich, wo du das genau im html dokument eingebunden hast (und wenn du es doppelt fett und unterstrichen schreibst), deshalb kann man dir hier leider nicht genau weiterhelfen sondern nur unterschiedliche Lösungsansätze präsentieren.
 

WebmanInSpace

Noch nicht viel geschrieben

Also gut ich probiere halt möglichst genau zu sein. :)
Ich habe die JS Datei im header unter style eingebunden wie man es halt auch macht. Dies habe ich jetzt mit dem console.log(test); ersetzt und in der Konsole wird nun der Text ausgegeben, es steht aber:

ReferenceError: $ is not defined search.js 1:1
<anonym>

Ich nehme an dies hat etwas mit dem Fehler zu tun. (Das Script ist ja in den obigen Nachrichten zu sehen.)

Gruss und vielen Dank im voraus
 

Myhar

Hat es drauf

Der Fehler heißt, dass $ nicht definiert ist. $ ist die kurzschreibweise von jQuery, also heißt das, dass jquery nicht eingebunden wird. Bevor du jetzt sagst "Es wird aber eingebunden" werde dir klar, dass es sehr wichtig ist, in welcher Reihenfolge Javascript Dateien eingebunden werden und dass du jQuery eventuell zu spät einbindest.
 

WebmanInSpace

Noch nicht viel geschrieben

Gut in diesem Fall binde ich zuerst das jQuery File ein und dann erst search.js:$
HTML:
<head>
        <title>
            Home
        </title>
       
        <link rel="stylesheet" href="main.css"/>
        <link rel="stylesheet" href="font.css"/>
        <script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/latest/jquery.js"></script>
        <script language="javascript" type="text/javascript" src="search.js"></script>
</head>

Jetzt steht da in der Konsole:
TypeError: $(...).click(...) is not a function

Ich hoffe mit dem kann man etwas anfangen!

Gruss
 

Myhar

Hat es drauf

Wieso lieferst du immer nur halbfertigen Code? Ich sehe in dem von dir geposteten, letzten Beitrag kein .click(), da kann ich dir also nicht helfen.

btw, don't use jquery latest.

Bei mir funktioniert dein jquery Link nicht einmal, aber dann müsstest du ein 404-Fehler in der Konsole bekommen und den solltest du ja bemerken und beheben. Außerdem müsste er dann ja schon bei $ einen Fehler werfen. Wie gesagt, mit so halbherzigen Code-Ausschnitten kann man nicht helfen.
 

WebmanInSpace

Noch nicht viel geschrieben

Guten Tag

Ich bin eben noch nicht so geübt mit Forumbeiträgen...

Also bei mir wird mit dem JQuery (Im Adobe Dreamweaver) alles angezeigt. Aber auch diesen Tipp werde ich dieses mal umsetzten.

Ich sehe in dem von dir geposteten, letzten Beitrag kein .click(), da kann ich dir also nicht helfen.
Das liegt daran das ich eben in JQuery noch nicht so geübt bin. (Den Text den ich in Klammern des Befehls geschrieben habe wurde in der Konsole angezeig und dadurch habe ich gedacht das sei so richtig.)

Hier mal mein aktueller Code: (die Animation habe ich heute morgen bisschen verändert)

HTML:
<html>
    <head>
        <title>
        </title>
      
        <meta charset="utf-8"/>
      
        <link rel="stylesheet" href="main.css"/>
        <link rel="stylesheet" href="font.css"/>
        <script language="javascript" type="text/javascript" src="jquery.js"></script>
        <script language="javascript" type="text/javascript" src="search.js"></script>


      
    </head>
       <body>
            <header>
                <div class="header_content">
                       <div class="header_content_logo">
                    </div>
                    <div class="header_content_link">
                        <a href="index.html" id="link" class="active">HOME</a>
                            <tab></tab>
                        <a href="index.html" id="link">WORKS</a>
                            <tab></tab>
                        <a href="index.html" id="link">CLIENTS</a>
                            <tab></tab>
                        <a href="index.html" id="link">SING IN</a>
                               <tab></tab>
                        <input type="button" class="srcbtn" value="">
                    </div>
                    <div id="searchbar">
                        <!-- Hier wäre ein Eingabefeld für die Suchfunktion -->
                    </div>
                </div>
            </header>
    </body>
</html>

CSS:
body{
    font-size: 12.5px;
    text-decoration: none;
}
header{
    background-color: #181818;
    opacity: ;
    height: 100px;
    position: fixed;
    margin-left: -10%;
    margin-right: -10%;
    width: 120%;
    top: -5px;
}
div.header_content{
    position: relative;
    left: 50%;
    top: 63px;
}
div.header_content_link{
    position: relative;
    left: 200px;

}
a{
    text-decoration: none;
    font-family: Lato;
    color: white;
    text-transform: uppercase;
}
#link:hover{
    border-bottom: 3px solid #938782;
    padding-bottom: 9px;
    transition: 0.5s ease;
}
a.active{
    border-bottom: 3px solid #938782;
    padding-bottom: 9px;
}
tab{
    padding-left: 40px;
}
.srcbtn{
    margin-top: -18px;
    margin-left: 360px;
    height: 17px;
    width: 20px;
    background: url(src_btn.png) no-repeat;
    background-size: 17px;
    display: block;
    position: relative;
    border: none;
}
#searchbar{
    background: grey;
    margin-left: 175px;
    margin-top: -30px;
    height: 42px;
    width: 370px;
    opacity: 100;
    display: none;
    position: relative;
}

Javascript:
$(document).ready(function(){
    $('.srcbtn').click()(function(){
        $("#searchbar").animate({
            display: 'true',
            width: '300px',
            opacity: 'toggle'
        });
    });
});

Um den Fragen wo das JQuery geblieben ist schon mal vorzubeugen: Ich habe es von der Seite: http://code.jquery.com/jquery-1.12.0.min.js kopiert und in die lokale jquery.js datei eingefügt.

In der Konsole wird momentan folgendes ausgegeben:

TypeError: $(...).click(...) is not a function . . . . . . . . . . . . . . . . . . . . . search.js:2:2


Gut jetzt hoffe ich das dies eine vollständige Antwort war und diese offenen, von mir nicht beantworteten Fragen, klären konnte!

Gruss
WIS
 
Zuletzt bearbeitet:

Myhar

Hat es drauf

Ja jetzt ist es vollständig und nachvollziehbar. Du hast bei deinem .click zwei Klammern zu viel. Korrekterweise muss es so heißen:
Code:
$('.srcbtn').click(function(){
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.613
Beiträge
1.538.345
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben