我有当前代码,它隐藏/显示iframe(外部页面通过cgi呈现文本列 - 从左到右显示)通过页面顶部的按钮。现在,iframe使用绝对定位,但我希望他们能够重新排序'并根据隐藏与显示的位置更改位置。 EX:如果仅显示2个iframe,则会减少左侧占用的空间。 这很重要,因为我将添加的内容多于一次可以放在页面上的内容。 (另外,我正在尝试更改Jscript以默认隐藏所有内容,而不是在页面加载时显示)
// A simple interface
public interface CreationTimestampAware {
void setCreationTime(Date date);
Date getCreationTime();
}
// Define the entity listener
public class CreationTimestampListener {
@PrePersist
public void onPrePersist(Object entity) {
// entity implements a CreationTimestampAware interface that exposes
// the single method #setCreationTime which we call here to set
// the value on the entity.
//
// Just annotate the entities you want with this functionality
// and implement the CreationTimestampAware interface
if ( CreationTimestampAware.class.isInstance( entity ) ) {
( (CreationTimestampAware) entity ).setCreationTime( new Date() );
}
}
}
// Link to your entity
@EntityListeners({CreationTimestampListener.class})
public class SomeEntity implements CreationTimeAware {
// specify your date property and implement the interface here
}

@PrePersist
private void onPersistCallback() {
// just set the value here
// this will only ever be called once, on a Persist event which
// is when the insert occurs.
this.date = new Date();
}

function myFunctionui() {
var x = document.getElementById('ui');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctiontic() {
var x = document.getElementById('tic');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctionlab() {
var x = document.getElementById('lab');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctionzone1_4() {
var x = document.getElementById('zone1_4');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctionzone5() {
var x = document.getElementById('zone5');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctionslas() {
var x = document.getElementById('slas');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctionhiks() {
var x = document.getElementById('hiks');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}

答案 0 :(得分:1)
我明白了。
首先,摆脱position:absolute
想法,因为有一种更简单的方法可以解决这个问题。
另外,请勿将iframe包装在div
中。 Div是块元素,意味着它们会故意破坏一条线,但是iframe是内联的,这意味着只有当线到达屏幕的末尾时它们才会断行,正如您在此答案中所看到的那样。 (但是,如果您愿意,可以将所有iframe包装在div
中。)
我建议您为html和正文删除overflow: hidden
,以便较小的屏幕可以看到您想要的内容。
你需要的唯一CSS就是iframe:white-space: nowrap
所以这些行永远不会破坏#iframeContainer {display: none}
,因为你希望默认情况下这一切都与其子iframe一样。
您的JavaScript中存在一个可以轻松修复的问题。正如我之前提到的,iframe是内联的。但是,在你的功能中,它表示要制作它们"阻止"如果按钮被点击时显示为"无"。要解决这个问题,只需更改"阻止" to" inline"。 (注意:我保留了" ui""阻止"因为你只是希望并排iframe。)另外,修复我的错误遇到,根据显示内容生成if语句" inline"而不是"无"。例如,写if (x.style.display === 'inline') {x.style.display = 'none';} else {x.style.display = 'inline'};
而不是if (x.style.display === 'none') {x.style.display = 'inline';} else {x.style.display = 'none';}
。另外,要修复加载时无显示的错误,只需将document.getElementById("iframeContainer").style.display = "block";
添加到if if语句外的每个函数中。
看一下片段,清楚地看到我的意思。 (它有效!)
var frameContainer = document.getElementById("iframeContainer");
function myFunctionui() {
var x = document.getElementById('ui');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
function myFunctiontic() {
var x = document.getElementById('tic');
if (x.style.display === 'inline') {
x.style.display = 'none';
} else {
x.style.display = 'inline';
}
frameContainer.style.display = "block";
}
function myFunctionlab() {
var x = document.getElementById('lab');
if (x.style.display === 'inline') {
x.style.display = 'none';
} else {
x.style.display = 'inline';
}
frameContainer.style.display = "block";
}
function myFunctionzone1_4() {
var x = document.getElementById('zone1_4');
if (x.style.display === 'inline') {
x.style.display = 'none';
} else {
x.style.display = 'inline';
}
frameContainer.style.display = "block";
}
function myFunctionzone5() {
var x = document.getElementById('zone5');
if (x.style.display === 'inline') {
x.style.display = 'none';
} else {
x.style.display = 'inline';
}
frameContainer.style.display = "block";
}
function myFunctionslas() {
var x = document.getElementById('slas');
if (x.style.display === 'inline') {
x.style.display = 'none';
} else {
x.style.display = 'inline';
}
frameContainer.style.display = "block";
}
function myFunctionhiks() {
var x = document.getElementById('hiks');
if (x.style.display === 'inline') {
x.style.display = 'none';
} else {
x.style.display = 'inline';
}
frameContainer.style.display = "block";
}

#iframeContainer {white-space: nowrap; display: none;}
#iframeContainer iframe {display: none;}

<button onclick="myFunctionui()">^</button>
<div id="ui">
<button onclick="myFunctiontic()">TICs</button>
<button onclick="myFunctionlab()">LABs</button>
<button onclick="myFunctionzone1_4()">ZONE 1-4</button>
<button onclick="myFunctionzone5()">ZONE 5</button>
<button onclick="myFunctionslas()">SLAS</button>
<button onclick="myFunctionhiks()">HIKS</button>
</div>
<div id="iframeContainer">
<iframe id="tic" src="https://itcrops.itap.purdue.edu/opstools/ticstatus/ticstatus.cgi" width="130" frameborder="0"></iframe>
<iframe id="lab" src="https://itcrops.itap.purdue.edu/opstools/labstatus/labstatus.cgi" width="130" frameborder="0"></iframe>
<iframe id="zone1_4" src="https://itcrops.itap.purdue.edu/opstools/pr/Dev/lastat/lastations1_4.cgi" width="250" frameborder="0"></iframe>
<iframe id="zone5" src="https://itcrops.itap.purdue.edu/opstools/pr/Dev/lastat/lastations5.cgi" width="250" frameborder="0"></iframe>
<iframe id="slas" src="https://itcrops.itap.purdue.edu/opstools/pr/Dev/lastat/slastations.cgi" width="250" frameborder="0"></iframe>
<iframe id="hiks" src="https://itcrops.itap.purdue.edu/opstools/pr/Dev/lastat/hiksstations.cgi" width="250" frameborder="0"></iframe>
</div>
&#13;