`

center popup div

阅读更多
popup center div
<html>
	<head>
		<title>div 100% height</title>
		<style>
			html, body {
				height: 100%;
				width: 100%;
				margin: 0;
				padding: 0;
			}
			#t {
				position: absolute;
				left: 5%;
				top: 5%;
				border: 1px solid #777;
				height: 90%;
				width: 90%;
			}
		</style>
		<script>
			var isIE;
			function showList(txt){
				//for non-IE browser
				var fixX=0;
				var fixY=0;
				if(isIE){
					fixX=0;
					fixY=0;
				}
				var e=document.getElementById("divList");
				var x=txt.offsetLeft;
				var y=txt.offsetTop;
				var w=txt.offsetWidth;
				var h=txt.offsetHeight;
				e.style.display="block";
				//it's adjust prefect for chrome, it should adjust again if for FireFox or IE
				e.style.left=2+"px";
				e.style.top=-2+"px";
				e.style.width=w-2+"px";
				e.style.height=100+"px";
			}
			function popupDiv(e){
				e.style.display="block";
				
				e.style.left="50%";
				e.style.top="50%";
				e.style.marginLeft=-e.offsetWidth/2+"px";
				e.style.marginTop=-e.offsetHeight/2+"px";
			}
			function selectItem(e){
				var txt=e.innerHTML;
				var e=document.getElementById("txt");
				e.value=txt;
				document.getElementById("divList").style.display="none";
			}
			window.onload=function(){
				document.getElementById('lblBrowser').innerHTML=navigator.appName+", "+navigator.appVersion;
				var str=navigator.appName;
				var reg=/internet\ explorer/i;
				if(reg.test(str))
					isIE=true;
			}
		</script>
	</head>
	<body>
		<div id="t">	
			100% height div<br />
			browser: <label id="lblBrowser"></label><br />
			<input type="button" value="popup center div" onclick="popupDiv(document.getElementById('divCenter'))" />
		</div>
		<div id="divCenter" style="position: absolute; display: none; width: 300px; height: 200px; border: 1px solid blanchedalmond;">
			<!-- <div>		for the bug about IE marginLeft -50% --->
				Hi, where are you travel this year?<br />
				<input type="text" id="txt" name="txt" onclick="showList(this)" /><br />
				<div id="divList" style="display: none; border: 1px solid #777; position: relative;">
					<ul>
						<li onclick="selectItem(this)">SINGAPORE</li>
						<li onclick="selectItem(this)">MALAYSIA</li>
						<li onclick="selectItem(this)">INDONISIA</li>
					</ul>
				</div>
				<input type="button" value="close" onclick="document.getElementById('divCenter').style.display='none';" />
			<!--</div>--->
		</div>
	</body>
</html>


it's respond incorrect in IE, the input text will go away into left, I believe it's the bug of IE, cause by margin left,
so the solution is add a div as container for it. try to remove the annotation. now it compatible in IE, FF, Chrome.
final code:

<html>
	<head>
		<title>div 100% height</title>
		<style>
			html, body {
				height: 100%;
				width: 100%;
				margin: 0;
				padding: 0;
			}
			#t {
				position: absolute;
				left: 5%;
				top: 5%;
				border: 1px solid #777;
				height: 90%;
				width: 90%;
			}
		</style>
		<script>
			var isIE;
			function showList(txt){
				//for non-IE browser
				var fixX=0;
				var fixY=0;
				var fixW=0;
				if(isIE){
					fixX=-2;
					fixY=0;
					fixW=2;
				}
				var e=document.getElementById("divList");
				var x=txt.offsetLeft;
				var y=txt.offsetTop;
				var w=txt.offsetWidth;
				var h=txt.offsetHeight;
				e.style.display="block";
				//it's adjust prefect for chrome, it should adjust again if for FireFox or IE
				e.style.left=2+fixX+"px";
				e.style.top=-2+fixY+"px";
				e.style.width=w-2+fixW+"px";
				e.style.height=100+"px";
			}
			function popupDiv(e){
				e.style.display="block";
				
				e.style.left="50%";
				e.style.top="50%";
				e.style.marginLeft=-e.offsetWidth/2+"px";
				e.style.marginTop=-e.offsetHeight/2+"px";
			}
			function selectItem(e){
				var txt=e.innerHTML;
				var e=document.getElementById("txt");
				e.value=txt;
				document.getElementById("divList").style.display="none";
			}
			window.onload=function(){
				document.getElementById('lblBrowser').innerHTML=navigator.appName+", "+navigator.appVersion;
				var str=navigator.appName;
				var reg=/internet\ explorer/i;
				if(reg.test(str))
					isIE=true;
			}
		</script>
	</head>
	<body>
		<div id="t">	
			100% height div<br />
			browser: <label id="lblBrowser"></label><br />
			<input type="button" value="popup center div" onclick="popupDiv(document.getElementById('divCenter'))" />
		</div>
		<div id="divCenter" style="position: absolute; display: none; width: 300px; height: 200px; border: 1px solid blanchedalmond;">
			<div>
				Hi, where are you travel this year?<br />
				<input type="text" id="txt" name="txt" onclick="showList(this)" /><br />
				<div id="divList" style="display: none; border: 1px solid #777; position: relative;">
					<ul>
						<li onclick="selectItem(this)">SINGAPORE</li>
						<li onclick="selectItem(this)">MALAYSIA</li>
						<li onclick="selectItem(this)">INDONISIA</li>
					</ul>
				</div>
				<input type="button" value="close" onclick="document.getElementById('divCenter').style.display='none';" />
			</div>
		</div>
	</body>
</html>


the result as below:

chrome1



chrome2



IE1



IE2



  • 大小: 58.7 KB
  • 大小: 67.2 KB
  • 大小: 89.9 KB
  • 大小: 69.5 KB
分享到:
评论

相关推荐

    popup.js实现的弹窗效果

    &lt;div id="popup" style="display:none;"&gt;默认内容&lt;/div&gt; ``` 在这个简单的例子中,点击按钮就会触发弹窗显示。`popup.js`库会处理显示和隐藏逻辑,你只需要传入弹窗的文本内容即可。 `popup.js`可能还提供了...

    DIV始终居中的半透明弹出层

    一个简单的弹出层可以由一个`&lt;div&gt;`元素来表示,我们可以给它一个类名,例如`popup`,以便在CSS中引用。同时,弹出层内容通常包含在一个内联元素(如`&lt;span&gt;`或`&lt;p&gt;`)中。下面是一个基本的HTML示例: ```html &lt;div...

    javascript DIV隐藏、显示 弹出式窗口样式

    &lt;div id="popup" style="display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);"&gt;弹出窗口内容&lt;/div&gt; ``` ```javascript document.getElementById('openButton')....

    用div实现悬浮窗+锁屏(防弹出窗体)

    首先,让我们理解`div`元素的基础。`div`是HTML中的一个块级元素,它主要用于组织页面内容。通过CSS样式,我们可以让`div`元素执行各种任务,如创建弹出窗口或覆盖层以实现锁屏效果。 在"悬浮窗"的实现中,通常会...

    点击弹出div圆角的遮罩层,可关闭

    &lt;div id="popup" class="popup"&gt; &lt;div class="popup-content"&gt; 这里是弹出的内容 关闭 &lt;/div&gt; &lt;/div&gt; &lt;script src="scripts.js"&gt;&lt;/script&gt; ``` 接下来是CSS部分,我们需要定义遮罩层和弹出内容的样式,...

    DIV始终居中的半透明弹出层.rar

    &lt;div class="popup" id="popup"&gt; &lt;!-- 弹出层内容 --&gt; ()"&gt;关闭 &lt;/div&gt; ``` 综上所述,"DIV始终居中的半透明弹出层"的实现涉及到HTML的`DIV`元素、CSS的布局技巧(包括`margin: auto`、`flexbox`或`grid`)、...

    HarmonyOS应用开发-popup气泡指示组件练习.docx

    align-items: center; padding-top: 200px; } .popup { mask-color: gray; } .text { color: white; } .button { width: 220px; height: 70px; margin-top: 50px; } ``` **JS 文件 (xxx.js):** ```...

    无限菜单之 xml+popup 版(IE5.5+)

    因为这些特征,Popup窗口制作的菜单比起传统的div(层)实现的菜单有着得天独厚的优势,不仅效果会非常好,而且代码也会是非常少的,只是对于实现起来却有几个需要解决的棘手问题:多个Popup共存的问题、如何递归生成...

    41、电商网站jQuery弹出提示层代码

    &lt;div id="popup-mask" class="popup-mask"&gt;&lt;/div&gt; &lt;div id="popup-container" class="popup-container"&gt; &lt;div class="popup-content"&gt; 提示信息 这里是提示内容... &lt;button id="popup-ok"&gt;确定 &lt;button id="...

    背景变暗,弹出提示层

    &lt;div id="popup"&gt;提示层内容&lt;/div&gt; $(document).ready(function() { $('#show_popup').click(function() { $('#mask, #popup').fadeIn(300); // 弹出提示层和遮罩层 }); $('#close_popup').click(function() {...

    div层实现IE Firefox 页面半透明遮罩效果弹窗

    &lt;div id="popup"&gt; 弹窗标题 这里是弹窗内容 关闭 &lt;/div&gt; ``` 在`test.css`文件中,我们可以定义`#mask`和`#popup`的样式,确保遮罩层覆盖整个页面,而弹出窗口居中显示: ```css body, html { height: 100...

    页面右下角弹出类似QQ或MSN的消息提示.rar

    &lt;div class="popup-header"&gt;消息提示&lt;/div&gt; &lt;div class="popup-content"&gt;&lt;/div&gt; &lt;button id="popup-close"&gt;关闭 &lt;/div&gt; ``` 接下来,我们用CSS来定义弹窗的样式,使其位于页面右下角,并具有适当的动画效果。...

    网页右下角弹出提示窗口

    &lt;div id="popup_content"&gt; 提示信息 最小化 关闭 &lt;/div&gt; &lt;/div&gt; &lt;script src="16sucai.js"&gt;&lt;/script&gt; ``` 接下来,`16sucai_style.css` 文件用于定义样式。我们可以设置提示窗口的位置、大小和样式,使其...

    flex 弹出窗口并居中显示

    &lt;div class="popup-content"&gt;&lt;/div&gt; &lt;/div&gt; ``` 然后在CSS中添加Flex样式: ```css .popup-container { display: flex; justify-content: center; align-items: center; position: fixed; top: 0; left: 0;...

    jQuery实现网页打开页面即弹窗

    &lt;div id="popup" style="display:none;"&gt; &lt;div class="popup-content"&gt; &lt;!-- 弹窗内容 --&gt; 关闭 &lt;/div&gt; &lt;/div&gt; ``` ### 三、CSS样式 `tang.css`文件中,我们可以为弹窗添加样式,以控制其外观和位置。例如: ...

    基于Jquery的弹窗提示插件

    &lt;div class="popup-header"&gt;标题&lt;/div&gt; &lt;div class="popup-content"&gt;&lt;/div&gt; 关闭 &lt;/div&gt; ``` ### 4. 插件功能实现 在jQuery插件中,我们可以使用`this`关键字来引用被选中的元素。例如,如果插件应用于一个按钮...

    jquery弹出框

    &lt;div id="popup" style="display: none;"&gt; &lt;div id="popup-content"&gt; &lt;!-- 在这里添加弹出框的内容 --&gt; &lt;a href="#" id="close-popup"&gt;关闭 &lt;/div&gt; &lt;/div&gt; ``` ### 3. 使用 CSS 进行样式设置 接下来,我们可以...

    jquery插件弹出层

    &lt;div id="popup" style="display: none;"&gt; &lt;!-- 弹出层内容 --&gt; &lt;/div&gt; ``` 最后,使用jQuery插件的API来控制弹出层的显示和隐藏。以下是一些常见的调用方法: ```javascript // 初始化弹出层 $(document).ready...

    基于jQuery精美浮动层效果(JS+CSS)

    &lt;div id="popup"&gt; &lt;div class="content"&gt; 这里是浮动层的内容 关闭 &lt;/div&gt; &lt;/div&gt; ``` 然后用CSS设置样式: ```css #popup { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); ...

    高德地图-自定义点击弹框(气泡)

    var popup = document.createElement('div'); popup.className = 'custom-popup'; popup.innerHTML = content; document.body.appendChild(popup); // 定位到点击位置 popup.style.left = e.lnglat.getLng()...

Global site tag (gtag.js) - Google Analytics