Fenster im Vordergrund beim Scrollen mitfahren lassen

arraybreak

Erfahrenes Mitglied
Tag All,

ich habe gerade ein Kontakt Formular dass sich im Vordergrund öffnet, das Problem dabei ist das er irgend wie eine feste Position hat und lässt sich beim Scrollen nicht mitfahren, in meinem Falle ist es Problematisch da dieses Fenster beim mir eine große Höhe hat (ca.840px)

Ich mit meinem 24 Zoll Bildschirm sehe ich den ganzen Formular aber nicht die Nutzer die z.b. einen Laptop haben, bei ihnen wird es nur zur Hälfte angezeigt und er lässt sich nicht scrollen.

Hier der Code:
PHP:
jQuery(function ($) {
	var contact = {
		message: null,
		init: function () {
			$('#contact-form input.contact, #contact-form a.contact, #contact-form .custom-button').click(function (e) {
				e.preventDefault();

				// load the contact form using ajax
				$.get("/contact/contact_partner.php", function(data){
					// create a modal dialog with the data
					$(data).modal({
						closeHTML: "<a href='#' title='Schliessen' class='modal-close'>x</a>",
						position: ["2%",],
						overlayId: 'contact-overlay',
						containerId: 'contact-container',
						onOpen: contact.open,
						onShow: contact.show,
						onClose: contact.close
					});
				});
			});
		},
		open: function (dialog) {
			// add padding to the buttons in firefox/mozilla
			if ($.browser.mozilla) {
				$('#contact-container .contact-button').css({
					'padding-bottom': '2px'
				});
			}
			// input field font size
			if ($.browser.safari) {
				$('#contact-container .contact-input').css({
					'font-size': '.9em'
				});
			}

			// dynamically determine height
			var h = 840;
			if ($('#contact-subject').length) {
				h += 26;
			}
			if ($('#contact-cc').length) {
				h += 22;
			}

			var title = $('#contact-container .contact-title').html();
			$('#contact-container .contact-title').html('Loading...');
			dialog.overlay.fadeIn(200, function () {
				dialog.container.fadeIn(200, function () {
					dialog.data.fadeIn(200, function () {
						$('#contact-container .contact-content').animate({
							height: h
						}, function () {
							$('#contact-container .contact-title').html(title);
							$('#contact-container form').fadeIn(200, function () {
								$('#contact-container #contact-name').focus();

								$('#contact-container .contact-cc').click(function () {
									var cc = $('#contact-container #contact-cc');
									cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');
								});

								// fix png's for IE 6
								if ($.browser.msie && $.browser.version < 7) {
									$('#contact-container .contact-button').each(function () {
										if ($(this).css('backgroundImage').match(/^url[("']+(.*\.png)[)"']+$/i)) {
											var src = RegExp.$1;
											$(this).css({
												backgroundImage: 'none',
												filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' +  src + '", sizingMethod="crop")'
											});
										}
									});
								}
							});
						});
					});
				});
			});
		},
		show: function (dialog) {
			$('#contact-container .contact-send').click(function (e) {
				e.preventDefault();
				// validate form
				if (contact.validate()) {
					var msg = $('#contact-container .contact-message');
					msg.fadeOut(function () {
						msg.removeClass('contact-error').empty();
					});
					$('#contact-container .contact-title').html('Senden...');
					$('#contact-container form').fadeOut(200);
					$('#contact-container .contact-content').animate({
						height: '80px'
					}, function () {
						$('#contact-container .contact-loading').fadeIn(200, function () {
							$.ajax({
								url: '/contact/contact_partner.php',
								data: $('#contact-container form').serialize() + '&action=send',
								type: 'post',
								cache: false,
								dataType: 'html',
								success: function (data) {
									$('#contact-container .contact-loading').fadeOut(200, function () {
										$('#contact-container .contact-title').html('Vielen Dank!');
										msg.html(data).fadeIn(200);
									});
								},
								error: contact.error
							});
						});
					});
				}
				else {
					if ($('#contact-container .contact-message:visible').length > 0) {
						var msg = $('#contact-container .contact-message div');
						msg.fadeOut(200, function () {
							msg.empty();
							contact.showError();
							msg.fadeIn(200);
						});
					}
					else {
						$('#contact-container .contact-message').animate({
							height: '30px'
						}, contact.showError);
					}
					
				}
			});
		},
		close: function (dialog) {
			$('#contact-container .contact-message').fadeOut();
			$('#contact-container .contact-title').html('auf Wiedersehen...');
			$('#contact-container form').fadeOut(200);
			$('#contact-container .contact-content').animate({
				height: 40
			}, function () {
				dialog.data.fadeOut(200, function () {
					dialog.container.fadeOut(200, function () {
						dialog.overlay.fadeOut(200, function () {
							$.modal.close();
						});
					});
				});
			});
		},
		error: function (xhr) {
			alert(xhr.statusText);
		},
		validate: function () {
			contact.message = '';
			if (!$('#contact-container #contact-name').val()) {
				contact.message += 'Name ist erforderlich. ';
			}
			
			if (!$('#contact-container #contact-strasse').val()) {
				contact.message += 'Strasse ist erforderlich. ';
			}
			if (!$('#contact-container #contact-stadt').val()) {
				contact.message += 'Stadt ist erforderlich. ';
			}
			
			if (!$('#contact-container #contact-plz').val()) {
				contact.message += 'PLZ ist erforderlich. ';
			}
			if (!$('#contact-container #contact-land').val()) {
				contact.message += 'Land ist erforderlich. ';
			}
			if (!$('#contact-container #contact-gb').val()) {
				contact.message += 'Geburtsdatum ist erforderlich. ';
			}
			if (!$('#contact-container #contact-ausbildung').val()) {
				contact.message += 'Ausbildung ist erforderlich. ';
			}
			if (!$('#contact-container #contact-bf-erfahrung').val()) {
				contact.message += 'Berufserfahrung ist erforderlich. ';
			}
			
			if (!$('#contact-container #contact-aktaetigkeit').val()) {
				contact.message += 'akt. T&auml;tigkeit ist erforderlich. ';
			}
			if (!$('#contact-container #contact-telefon').val()) {
				contact.message += 'Telefon ist erforderlich. ';
			}
			
			var email = $('#contact-container #contact-email').val();
			if (!email) {
				contact.message += 'Email ist erforderlich. ';
			}
			else {
				if (!contact.validateEmail(email)) {
					contact.message += 'E-Mail ist ung&uuml;ltig. ';
				}
			}

			if (contact.message.length > 0) {
				return false;
			}
			else {
				return true;
			}
		},
		validateEmail: function (email) {
			var at = email.lastIndexOf("@");

			// Make sure the at (@) sybmol exists and  
			// it is not the first or last character
			if (at < 1 || (at + 1) === email.length)
				return false;

			// Make sure there aren't multiple periods together
			if (/(\.{2,})/.test(email))
				return false;

			// Break up the local and domain portions
			var local = email.substring(0, at);
			var domain = email.substring(at + 1);

			// Check lengths
			if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255)
				return false;

			// Make sure local and domain don't start with or end with a period
			if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain))
				return false;

			// Check for quoted-string addresses
			// Since almost anything is allowed in a quoted-string address,
			// we're just going to let them go through
			if (!/^"(.+)"$/.test(local)) {
				// It's a dot-string address...check for valid characters
				if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local))
					return false;
			}

			// Make sure domain contains only valid characters and at least one period
			if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1)
				return false;	

			return true;
		},
		showError: function () {
			$('#contact-container .contact-message')
				.html($('<div class="contact-error"></div>').append(contact.message))
				.fadeIn(200);
		}
	};

	contact.init();

});

Habe schon vieles probiert aber irgend komme ich nicht auf die Lösung.

Gruß arraybreak
 

Neue Beiträge

Zurück