Avatar billede j-roar-h Nybegynder
17. februar 2010 - 08:40 Der er 10 kommentarer og
1 løsning

Boks kommer ud fra top af browser

Boks med tekst kommer fra top af browser
Hej.

Jeg har fundet denne ting http://jorenrapini.com/posts/contactform/, som jeg gerne vil have på min hjemmeside. Dog kun med tekst.

Mit problem er bare at denne er i toppen, og jeg vil gerne have den til at være i venstre side af browseren.

Hvordan gør jeg det?

Min html side ser sådan ud:

<!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" />
<link type="text/css" href="css/reset.css" rel="stylesheet" />
<link type="text/css" href="css/styles.css" rel="stylesheet" />
<title>Joren Rapini's Contact Form</title>
</head>
<body>
<div class="container">
    <div id="contactFormContainer">
        <div id="contactForm">
            <div class="loader"></div>
            <div class="bar"></div>
         
                <p>VIGTIGT!</p>
                <div class="input_boxes">
                </div>
      </div>
      <div class="contact"></div> 
  </div>

    <div id="dummycontent">
    <p>TEKST</p>
    <a href="#contactFormContainer" class="contact bottomlink"><strong>Contact Me</strong></a>
    </div>
 
</div>
<div id="backgroundPopup"></div>

<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="js/scripts.js" type="text/javascript"></script>
</body>
</html>


min reset.css ser sådan ud:

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}

/* remember to define focus styles! */
:focus {
    outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
    text-decoration: none;
}
del {
    text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}


min styles ser sådan ud:

body {background:#fff; font-family:Verdana, Geneva, sans-serif; font-size:12px; line-height:20px; color:#545353;}

.container {
    width:960px;
    margin:0px auto;
    position:relative;
    z-index:12;
    }
 
/* Positions the contact form so it doesn't interfere with any other content, as well as a z-index above any other elements on the page */ 
#contactFormContainer {
    position:absolute;
    left:368px;
    z-index:1;
    }
 
/* Hides the whole contact form until needed */ 
#contactForm {
    height:289px;width:558px;
    border:1px solid #929191;
    padding:7px 12px;
    color:#fff;
    display:none;
    }

/* Loading bar that will appear while the ajax magic is happening */
.bar{
    display:none;
    background:url(../images/ajax-loader.gif) no-repeat center;
    margin-top:100px;
    height:40px; width:230px;
    }
 
/* Hides the confirmation message until needed */ 
#messageSent {display:none;}

/* This hides the form validation alert messages until needed */
#contactForm span {
    display:none;
    font-size:9px;
    line-height:10px;
    padding-left:6px;
    color:#f5c478;
    }
 
/* Some styling for the contact button */
#contactFormContainer .contact {
    height:47px; width:211px;
    background:url(../images/contact_me.png);
    position:absolute;
    left:368px; bottom:-44px;
    cursor:pointer;
    }
         
/* Hides the darkening layer for the Modal effect. The z-index is necessary for layering purposes, and be sure to keep the positioning/height/width the same */ 
#backgroundPopup{
    display:none;
    position:fixed;
    _position:absolute;
    height:100%; width:100%;
    top:0; left:0;
    background:#000;
    z-index:11;
    }
 
/* Form styling from here on out. There is nothing in here that you HAVE to use to get this to work */ 
#contactForm textarea, #contactForm input {
    width:180px;
    background:#6d6d6d url(../images/contact_input.png) repeat-x top;
    color:#fff;
    border:1px solid #8a8a8a;
    height:15px;
    line-height:14px;
    font-size:11px;
    padding:2px 2px 0px;
    }
#contactForm input {background-position:0px -20px;}
#contactForm textarea {height:114px; font-family:Verdana, Geneva, sans-serif;}
#contactForm .submit {
    border:1px solid #aba8a8;
    background:#e5e5e5;
    text-transform:uppercase;
    color:#4d4d4d;
    font-weight:bold;
    padding:7px 16px 7px 14px;
    height:37px; width:124px;
    cursor:pointer;
    float:left;
    margin-top:196px;
    }
#contactForm .submit:active {background:#cacaca; }
#contactForm label {padding-left:4px; font-weight:bold;}
#contactForm p {padding-bottom:8px;}
#contactForm .input_boxes {float:left; width:204px;}

#dummycontent {padding-top:100px; height:900px; position:relative;}
.bottomlink {position:absolute; bottom:0;}


Min script.js ser sådan ud:

$(document).ready(function(){
    //function for contact form dropdown
    function contact() {
        if ($("#contactForm").is(":hidden")){
            $("#contactForm").slideDown("slow");
            $("#backgroundPopup").css({"opacity": "0.7"});
            $("#backgroundPopup").fadeIn("slow");
        }
        else{
            $("#contactForm").slideUp("slow");
            $("#backgroundPopup").fadeOut("slow");
        }
    }
 
    //run contact form when any contact link is clicked
    $(".contact").click(function(){contact()});
 
    //animation for same page links #
    $('a[href*=#]').each(function() {
        if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
        && location.hostname == this.hostname
        && this.hash.replace(/#/,'') ) {
          var $targetId = $(this.hash), $targetAnchor = $('[name=' + this.hash.slice(1) +']');
          var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : false;
            if ($(this.hash).length) {
                $(this).click(function(event) {
                    var targetOffset = $(this.hash).offset().left;
                    var target = this.hash;
                    event.preventDefault();           
                    $('html, body').animate({scrollleft: targetOffset}, 500);
                    return false;
                });
            }
        }
    });



  //submission scripts
  $('.contactForm').submit( function(){
        //statements to validate the form 
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        var email = document.getElementById('e-mail');
        if (!filter.test(email.value)) {
            $('.email-missing').show();
        } else {$('.email-missing').hide();}
        if (document.cform.name.value == "") {
            $('.name-missing').show();
        } else {$('.name-missing').hide();} 
        if (document.cform.message.value == "") {
            $('.message-missing').show();
        } else {$('.message-missing').hide();}     
        if ((document.cform.name.value == "") || (!filter.test(email.value)) || (document.cform.message.value == "")){
            return false;
        }
     
        if ((document.cform.name.value != "") && (filter.test(email.value)) && (document.cform.message.value != "")) {
            //hide the form
            $('.contactForm').hide();
     
            //show the loading bar
            $('.loader').append($('.bar'));
            $('.bar').css({display:'block'});
     
            //send the ajax request
            $.post('mail.php',{name:$('#name').val(),
                              email:$('#e-mail').val(),
                              message:$('#message').val()},
     
            //return the data
            function(data){
              //hide the graphic
              $('.bar').css({display:'none'});
              $('.loader').append(data);
            });
         
            //waits 2000, then closes the form and fades out
            setTimeout('$("#backgroundPopup").fadeOut("slow"); $("#contactForm").slideUp("slow")', 2000);
         
            //stay on the page
            return false;
        }
  });
    //only need force for IE6
    $("#backgroundPopup").css({
        "height": document.documentElement.clientHeight
    });
});


Håber det er til at finde ud af selvom det er så lang en tekst!
Avatar billede scriptkid Nybegynder
17. februar 2010 - 09:29 #1
Hej jeg kan se at han bruger jquery, jeg mener faktisk at den funktion du efterspørger er med de eksempler man kan downloade sammen med jquery ui du kan hente det her : http://jqueryui.com/download og du kan også tage et kikke på denne side jeg vil mene at det er "animate" functionen i jquery du skal have fat i.
Avatar billede skelboe Nybegynder
17. februar 2010 - 09:55 #2
hvis du vælger jquery kan du bare bruge

$("#id").slideIn();
Jeg mener der er det den hedder. Den ændre height til hvad end du nu skal bruge.

Dog vil jeg hellere sætte boksens top margin til -højden, og så bruge animate som #1 skrev.

$("#id"),animate({ marginTop: 0 });


http://jquery.com/ <-- her henter du basis scriptet
Avatar billede j-roar-h Nybegynder
17. februar 2010 - 18:59 #3
Nu spørger jeg nok dumt, men jeg forstår ikke helt hvad i mener.

I html filen linker den til denne fil: http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js. Den har jeg nu hentet, så jeg linker til den fra min egen computer.

Jeg har prøvet at hente jquery-1.4.1.min men det virkede ikke. Så vil tro jeg skal bruge 1.3.2 versionen.

Nu ved jeg så ikke hvordan jeg kommer videre.

Jeg har hentet jquery-ui-1.7.2.custom og der er der en funktion der hedder animation. Den ser faktisk rigtig ud, bortset fra at den viser et lille vindue fra start, som så bliver større når man klikke på en knap. Jeg vil gerne have det er en lille knap fra start, og så kommer der tekst frem i en boks, når man trykker på knappen. Det kan jeg ikke finde ud af at ændre. Den skal også være helt ude i siden af browseren. Nu er den lidt inde i browseren..

Kan i hjælpe mig med at komme videre?
Avatar billede skelboe Nybegynder
17. februar 2010 - 19:46 #4
Prøv det her

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
    function showBox() {
        console.log('test');
        $("#mySlideInBox").animate({
            top: 0,
        }, 'slow');
    }
</script>
<style type="text/css">
    #mySlideInBox {
        width: 400px;
        height: 500px;
        border: 1px solid #999;
        background: #eee;
        position: absolute;
        left: 50%;
        margin-left: -200px;
        top: -450px;
    }
</style>
</head>

<body>
<div id="mySlideInBox">Dette er en boks</div>
<a href="java script:showBox();">Vis boks</a>
</body>
Avatar billede skelboe Nybegynder
17. februar 2010 - 19:47 #5
du behøver selvføgelig ikke [b] console.log('test');[\b]
Avatar billede j-roar-h Nybegynder
17. februar 2010 - 21:03 #6
det virker desværre ikke...

Du kan se hvordan der ser ud her: http://ringstedtennisklub.dk/feedback/feedback.html

det jeg har gjort er at jeg kopierede dit script, og fjernede console.log('test');

Jeg har ikke gjort andet. Om dette er forkert ved jeg ikke.
Avatar billede j-roar-h Nybegynder
17. februar 2010 - 21:05 #7
den skal også være i venstre side, og ikke i toppen. Og der skal være en knap som kører ud samtidigt med boksen. Altså ikke bare en tekst, som gør at boksen kommer frem.

Håber du kan hjælpe!
Avatar billede skelboe Nybegynder
17. februar 2010 - 21:15 #8
der er kommet et mellemrum i linket

<a href="java script:showBox();">Vis boks</a>

skal være
<a href="java script:showBox();">Vis boks</a>

Du kan bare ændre i dit stylen
#mySlideInBox {
        width: 400px;
        height: 500px;
        border: 1px solid #999;
        background: #eee;
        position: absolute;
        left: 50%;
        margin-left: -200px;
        top: -450px;
    }
Avatar billede j-roar-h Nybegynder
18. februar 2010 - 12:04 #9
jeg har nu prøvet at ændre det lidt, så det kom til at være som jeg gerne ville have det. dog uden held.

Jeg kan ikke få den til at starte midt på side i venstre side. Teksten "dette er en boks" vises heller ikke.

Det skal også være sådan at der er en knap på højre side i stedet for teksten "vis boks".
Den skal så følge med boksten når boksen kommer ud fra siden. Man skal så kunne klikke på knappen igen, så boksen kommer "gemmes" igen.

se hvor dan det pt ser ud her: http://www.ringstedtennisklub.dk/feedback/feedback.html

koden er nu:

<!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>Untitled Document</title>
</head>

<body>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
    function showBox() {
                $("#mySlideInBox").animate({
            left: 0,
        }, 'slow');
    }
</script>
<style type="text/css">
    #mySlideInBox {
        width: 400px;
        height: 500px;
        border: 1px solid #999;
        background: #eee;
        position: absolute;
        left: 10%;
        margin-left: -400px;
        top: -450px;
        margin-top:50&;
    }
</style>
</head>

<body>
<div id="mySlideInBox">Dette er en boks</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="java script:showBox();">Vis boks</a></p>
</body>
</body>
</html>
Avatar billede j-roar-h Nybegynder
18. februar 2010 - 12:23 #10
jeg har nu fundet en anden form.... Som faktisk virker som den skal... Dog er der et lille problem. den er lavet så man kan sende en mail. Det skal jeg ikke kunne, da den kun skal indeholde tekst. Jeg kan bare ikke finde ud af at slette emailformen.

Kan du hjælpe med dette?

html koden er sådan:

<html>
<head>
<title>Contactable | jQuery Plugin</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript" src="jquery.validate.pack.js"></script>
<script type="text/javascript" src="jquery.contactable.js"></script>
<link rel="stylesheet" href="contactable.css" type="text/css" />

<style type="text/css">
    #content {
    background-color:#FDFDFD;
    border-left:2px solid #333333;
    border-right:2px solid #333333;
    margin:0 auto 0;
    padding:10px;
    position:relative;
    width:930px;
    height:100%;
    }   
</style>
<script>
    $(function(){
        $('#contact').contactable({
            recipient: 'test@test.com',
            subject: 'A Feeback Message'
        });
    });
</script>
</head>
<body>
<div id="contact">
</div>
</body>
</html>

jquery.contactable.js er sådan (det er så vidt jeg kan se i denne det skal rettes):


//extend the plugin
(function($){

    //define the new for the plugin ans how to call it   
    $.fn.contactable = function(options) {
        //set default options 
        var defaults = {
            name: 'Name',
            email: 'Email',
            message : 'Message',
            recipient : 'test@test.co.uk',
            subject : 'A contactable message',
            recievedMsg : 'Thankyou for your message',
            notRecievedMsg : 'Sorry but your message could not be sent, try again later',
            disclaimer: 'Please feel free to get in touch, we value your feedback'
        };

        //call in the default otions
        var options = $.extend(defaults, options);
        //act upon the element that is passed into the design   
        return this.each(function(options) {
            //construct the form
            $(this).html('<div id="contactable"></div><form id="contactForm" method="" action=""><div id="loading"></div><div id="callback"></div><div class="holder"><input type="hidden" id="recipient" name="recipient" value="'+defaults.recipient+'" /><input type="hidden" id="subject" name="subject" value="'+defaults.subject+'" /><p><label for="name">Name <span class="red"> * </span></label><br /><input id="name" class="contact" name="name" /></p><p><label for="email">E-Mail <span class="red"> * </span></label><br /><input id="email" class="contact" name="email" /></p><p><label for="comment">Your Feedback <span class="red"> * </span></label><br /><textarea id="comment" name="comment" class="comment" rows="4" cols="30" ></textarea></p><p><input class="submit" type="submit" value="Send"/></p><p>'+defaults.disclaimer+'</p></div></form>');
            //show / hide function
            $('div#contactable').toggle(function() {
                $('#overlay').css({display: 'block'});
                $(this).animate({"marginLeft": "-=5px"}, "fast");
                $('#contactForm').animate({"marginLeft": "-=0px"}, "fast");
                $(this).animate({"marginLeft": "+=387px"}, "slow");
                $('#contactForm').animate({"marginLeft": "+=390px"}, "slow");
            },
            function() {
                $('#contactForm').animate({"marginLeft": "-=390px"}, "slow");
                $(this).animate({"marginLeft": "-=387px"}, "slow").animate({"marginLeft": "+=5px"}, "fast");
                $('#overlay').css({display: 'none'});
            });
           
            //validate the form
            $("#contactForm").validate({
                //set the rules for the fild names
                rules: {
                    name: {
                        required: true,
                        minlength: 2
                    },
                    email: {
                        required: true,
                        email: true
                    },
                    comment: {
                        required: true
                    }
                },
                //set messages to appear inline
                messages: {
                    name: "",
                    email: "",
                    comment: ""
                },
                submitHandler: function() {
                    $('.holder').hide();
                    $('#loading').show();
                    $.get('mail.php',{recipient:$('#recipient').val(), subject:$('#subject').val(), name:$('#name').val(), email:$('#email').val(), comment:$('#comment').val()},
                    function(data){
                        $('#loading').css({display:'none'});
                        if( data == 'success') {
                            $('#callback').show().append(defaults.recievedMsg);
                        } else {
                            $('#callback').show().append(defaults.notRecievedMsg);
                        }
                    });       
                }
            });
        });
    };
    //end the plugin call
})(jQuery);
Avatar billede j-roar-h Nybegynder
05. december 2010 - 10:38 #11
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester