ฉันกำลังออกแบบเว็บเพจ เมื่อเราคลิกเนื้อหาของ div mail ที่มีชื่อฉันจะแสดงหน้าต่างป๊อปอัพที่มีอีเมลป้ายกำกับและกล่องข้อความได้อย่างไร
ฉันกำลังออกแบบเว็บเพจ เมื่อเราคลิกเนื้อหาของ div mail ที่มีชื่อฉันจะแสดงหน้าต่างป๊อปอัพที่มีอีเมลป้ายกำกับและกล่องข้อความได้อย่างไร
คำตอบ:
ก่อนอื่น CSS - ปรับแต่งตามที่คุณต้องการ:
a.selected {
background-color:#1F75CC;
color:white;
z-index:100;
}
.messagepop {
background-color:#FFFFFF;
border:1px solid #999999;
cursor:default;
display:none;
margin-top: 15px;
position:absolute;
text-align:left;
width:394px;
z-index:50;
padding: 25px 25px 20px;
}
label {
display: block;
margin-bottom: 3px;
padding-left: 15px;
text-indent: -15px;
}
.messagepop p, .messagepop.div {
border-bottom: 1px solid #EFEFEF;
margin: 8px 0;
padding-bottom: 8px;
}
และ JavaScript:
function deselect(e) {
$('.pop').slideFadeToggle(function() {
e.removeClass('selected');
});
}
$(function() {
$('#contact').on('click', function() {
if($(this).hasClass('selected')) {
deselect($(this));
} else {
$(this).addClass('selected');
$('.pop').slideFadeToggle();
}
return false;
});
$('.close').on('click', function() {
deselect($('#contact'));
return false;
});
});
$.fn.slideFadeToggle = function(easing, callback) {
return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing, callback);
};
และสุดท้าย html:
<div class="messagepop pop">
<form method="post" id="new_message" action="/messages">
<p><label for="email">Your email or name</label><input type="text" size="30" name="email" id="email" /></p>
<p><label for="body">Message</label><textarea rows="6" name="body" id="body" cols="35"></textarea></p>
<p><input type="submit" value="Send Message" name="commit" id="message_submit"/> or <a class="close" href="/">Cancel</a></p>
</form>
</div>
<a href="/contact" id="contact">Contact Us</a>
นี่คือตัวอย่าง jsfiddle และการใช้งาน
ขึ้นอยู่กับสถานการณ์ที่คุณอาจต้องการโหลดเนื้อหาป๊อปอัพผ่านการโทร ajax เป็นการดีที่สุดที่จะหลีกเลี่ยงปัญหานี้หากเป็นไปได้เนื่องจากอาจทำให้ผู้ใช้เกิดความล่าช้าอย่างมีนัยสำคัญก่อนที่จะเห็นเนื้อหา ต่อไปนี้คือการเปลี่ยนแปลงสองสามอย่างที่คุณต้องการหากคุณใช้วิธีการนี้
HTML กลายเป็น:
<div>
<div class="messagepop pop"></div>
<a href="/contact" id="contact">Contact Us</a>
</div>
และความคิดทั่วไปของ JavaScript จะกลายเป็น:
$("#contact").on('click', function() {
if($(this).hasClass("selected")) {
deselect();
} else {
$(this).addClass("selected");
$.get(this.href, function(data) {
$(".pop").html(data).slideFadeToggle(function() {
$("input[type=text]:first").focus();
});
}
}
return false;
});
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
ตรวจสอบjQuery UI การโต้ตอบ คุณจะใช้มันแบบนี้:
The jQuery:
$(document).ready(function() {
$("#dialog").dialog();
});
มาร์กอัป:
<div id="dialog" title="Dialog Title">I'm in a dialog</div>
ทำ!
โปรดจำไว้ว่าเป็นเรื่องเกี่ยวกับกรณีการใช้งานที่ง่ายที่สุดฉันขอแนะนำให้อ่านเอกสารเพื่อให้ได้แนวคิดที่ดีขึ้นเกี่ยวกับสิ่งที่สามารถทำได้
ฉันใช้ปลั๊กอิน jQuery ชื่อColorBoxมันเป็น
ลองMagnific Popupมันตอบสนองและมีน้ำหนักประมาณ 3KB
เยี่ยมชม URL นี้
ฉันคิดว่านี่เป็นแบบฝึกหัดที่ยอดเยี่ยมในการเขียนป๊อปอัพ jquery แบบง่าย ๆ รวมทั้งดูสวยงามมาก
มีตัวอย่างที่ดีอย่างง่ายตรงนี้: http://www.queness.com/post/77/simple-jquery-modal-window-tutorial
ปลั๊กอินป๊อปอัพ Modal น้ำหนักเบามาก POPELT - http://welbour.com/labs/popelt/
มันมีน้ำหนักเบารองรับป๊อปอัปที่ซ้อนกันเชิงวัตถุสนับสนุนปุ่มแบบไดนามิกตอบสนองและอื่น ๆ อีกมากมาย การปรับปรุงครั้งต่อไปจะรวมถึงการส่งแบบฟอร์มป๊อปอัพอาแจ็กซ์ ฯลฯ
รู้สึกอิสระที่จะใช้และข้อเสนอแนะทวีต
หน้าต่างป๊อปอัพง่าย ๆ โดยใช้ html5 และ javascript
HTML: -
<dialog id="window">
<h3>Sample Dialog!</h3>
<p>Lorem ipsum dolor sit amet</p>
<button id="exit">Close Dialog</button>
</dialog>
<button id="show">Show Dialog</button>
JavaScript: -
(function() {
var dialog = document.getElementById('window');
document.getElementById('show').onclick = function() {
dialog.show();
};
document.getElementById('exit').onclick = function() {
dialog.close();
};
})();
TypeError: dialog.show is not a function
ข้อผิดพลาด คุณช่วยโปรดรวม JSFiddle ได้ไหม?
นี่คือป๊อปอัปที่ง่ายมาก:
<!DOCTYPE html>
<html>
<head>
<style>
#modal {
position:absolute;
background:gray;
padding:8px;
}
#content {
background:white;
padding:20px;
}
#close {
position:absolute;
background:url(close.png);
width:24px;
height:27px;
top:-7px;
right:-7px;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
var modal = (function(){
// Generate the HTML and add it to the document
$modal = $('<div id="modal"></div>');
$content = $('<div id="content"></div>');
$close = $('<a id="close" href="#"></a>');
$modal.hide();
$modal.append($content, $close);
$(document).ready(function(){
$('body').append($modal);
});
$close.click(function(e){
e.preventDefault();
$modal.hide();
$content.empty();
});
// Open the modal
return function (content) {
$content.html(content);
// Center the modal in the viewport
$modal.css({
top: ($(window).height() - $modal.outerHeight()) / 2,
left: ($(window).width() - $modal.outerWidth()) / 2
});
$modal.show();
};
}());
// Wait until the DOM has loaded before querying the document
$(document).ready(function(){
$('a#popup').click(function(e){
modal("<p>This is popup's content.</p>");
e.preventDefault();
});
});
</script>
</head>
<body>
<a id='popup' href='#'>Simple popup</a>
</body>
</html>
โซลูชันที่มีความยืดหยุ่นมากขึ้นสามารถพบได้ในบทช่วยสอนนี้: http://www.jacklmoore.com/notes/jquery-modal-tutorial/ นี่คือclose.pngสำหรับตัวอย่าง
CSS POPUP LOGIC เท่านั้น! ลองทำดู ง่าย! ฉันคิดว่า mybe นี้จะแฮ็คที่เป็นที่นิยมในอนาคต
<a href="#openModal">OPEN</a>
<div id="openModal" class="modalDialog">
<div>
<a href="#close" class="close">X</a>
<h2>MODAL</h2>
</div>
</div>
.modalDialog {
position: fixed;
font-family: Arial, Helvetica, sans-serif;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0,0,0,0.8);
z-index: 99999;
-webkit-transition: opacity 400ms ease-in;
-moz-transition: opacity 400ms ease-in;
transition: opacity 400ms ease-in;
display: none;
pointer-events: none;
}
.modalDialog:target {
display: block;
pointer-events: auto;
}
.modalDialog > div {
width: 400px;
position: relative;
margin: 10% auto;
padding: 5px 20px 13px 20px;
border-radius: 10px;
background: #fff;
background: -moz-linear-gradient(#fff, #999);
background: -webkit-linear-gradient(#fff, #999);
background: -o-linear-gradient(#fff, #999);
}