预期的实验效果
网页上有3个按钮
按钮1: 创建, 单击后创建一个 名叫newfrm 的大小为10*可达像素高(screen.availHeight)
按钮2:窗口变大, 单击后,newfrm以水平方向没秒增加50个像素的大小增大。下列任意一种情况发生,函数会终止 (1)newfrm的width到达screen.Width值。(2)用户点击了按钮3.
按钮3: 停止变大, 单击后, newfrm停止变大//下面这段代码还没成功, 关键是在function amplify()中引用到的newfrm有点问题。应该怎么改才能实现预期的功能呢?
<html><body>
<script type="text/javascript">var stop_call=setInterval("amplify()",1000)
var newfrm
var x=10function create()
{
window.open("","newfrm",style="width: 10; height:screen.availHeight")
}
function amplify()
{
if(x<=screen.availWidth)
{
x=x+50
newfrm.resizeTo(x,screen.availHeight)
}
setInterval("amplify()",1000)
}function stop()
{
clearInterval(stop_call)
}</script>
<input type="button" id="b1" value="创建新窗口"onclick="create()"/>
<input type="button" id="b2" value="窗口变大" onclick="amplify()"/>
<input type="button" id="b3" value="停止变大" onclick="stop()"/>
</body>
</html>
网页上有3个按钮
按钮1: 创建, 单击后创建一个 名叫newfrm 的大小为10*可达像素高(screen.availHeight)
按钮2:窗口变大, 单击后,newfrm以水平方向没秒增加50个像素的大小增大。下列任意一种情况发生,函数会终止 (1)newfrm的width到达screen.Width值。(2)用户点击了按钮3.
按钮3: 停止变大, 单击后, newfrm停止变大//下面这段代码还没成功, 关键是在function amplify()中引用到的newfrm有点问题。应该怎么改才能实现预期的功能呢?
<html><body>
<script type="text/javascript">var stop_call=setInterval("amplify()",1000)
var newfrm
var x=10function create()
{
window.open("","newfrm",style="width: 10; height:screen.availHeight")
}
function amplify()
{
if(x<=screen.availWidth)
{
x=x+50
newfrm.resizeTo(x,screen.availHeight)
}
setInterval("amplify()",1000)
}function stop()
{
clearInterval(stop_call)
}</script>
<input type="button" id="b1" value="创建新窗口"onclick="create()"/>
<input type="button" id="b2" value="窗口变大" onclick="amplify()"/>
<input type="button" id="b3" value="停止变大" onclick="stop()"/>
</body>
</html>
你试试 setTimeout???
{
if(x<=screen.availWidth)
{
x=x+50
newfrm.resizeTo(x,screen.availHeight)
}
//setInterval("amplify()",1000)
}
前面已经setInterval过执行amplify方法了,函数里不需要再setInterval
不能改变窗口的大小;可以用div来模拟窗口;然后改变大小
var newfrm, x = 10, stop_call;
function create() {
newfrm = window.open('', 'newwindow', 'height=50,width=50,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
}
function amplify() {
if (x <= screen.availWidth) {
x = x + 50;
newfrm.resizeTo(x, screen.availHeight);
}
stop_call = setInterval("amplify()", 10000);
}
function stop() {
clearInterval(stop_call);
}
</script>
setInterval要改成setTimeout;
当x已经大于screen.availWidth以后就不要再setTimeout了
(要把setTimeout那行放进if语句里面去)。var x = 10;
var stop_call;
var newfrm;function create() {
newfrm = window.open("","newfrm",style="width: 10; height:screen.availHeight");
}
function amplify() {
if(x<=screen.availWidth) {
x=x+50;
newfrm.resizeTo(x,screen.availHeight);
stop_call = setTimeout("amplify()",1000);
}}function stop() {
clearTimeout(stop_call);
}
另外更正后满足你窗口起始宽度为10,高度为屏幕高度的需求:
var x = 10;
var stop_call;
var newfrm;function create() {
newfrm = window.open("about:blank","newfrm", "width=10,height=" + screen.availHeight);
}
function amplify() {
if(x<=screen.availWidth) {
x=x+50;
newfrm.resizeTo(x,screen.availHeight);
stop_call = setTimeout("amplify()",1000);
}
}function stop() {
clearTimeout(stop_call);
}