我的功能似乎没有正确执行。怎么了?我已经花了5个小时试图让这个功能起作用。最终我要在照片上加上链接。
<html>
<head>
<script type="text/javascript">
var pagenumber=1;
function increase()
{
if(pagenumber == 1)
{
return
}
pagenumber++;
}
function decrease()
{
if(pagenumber == 5)
{
return
}
pagenumber--;
}
function slider() {
if(pagenumber == 1)
{
document.getElementById('pg1').style.display='inline';
document.getElementById('pg2').style.display='none';
document.getElementById('down').style.cursor='not-allowed';
document.getElementById('down').style.background-position='top';
}
if(pagenumber == 2)
{
document.getElementById('pg1').style.display='h';
document.getElementById('pg3').style.display='none';
document.getElementById('pg2').style.display='inline';
document.getElementById('down').style.cursor='pointer';
document.getElementById('down').style.background-position='bottom';
}
if(pagenumber == 3)
{
document.getElementById('pg2').style.display='none';
document.getElementById('pg4').style.display='none';
document.getElementById('pg3').style.display='inline';
}
if(pagenumber == 4)
{
document.getElementById('pg3').style.display='none';
document.getElementById('pg5').style.display='none';
document.getElementById('pg4').style.display='inline';
document.getElementById('down').style.cursor='pointer';
document.getElementById('up').style.background-position='top';
}
if(pagenumber == 5)
{
document.getElementById('pg4').style.display='none';
document.getElementById('pg5').style.display='inline';
document.getElementById('up').style.cursor='not-allowed';
document.getElementById('up').style.background-position='bottom';
}
}
</script>
</head>
<body height="183px" bgcolor="#F3F3F3" style="width:279px">
<div id="down" style="float:left;margin-top:29px;height:27px;width:15px;display:block;cursor:pointer;background:url('website/arrow_left.png') no-repeat top left;background-repeat:no-repeat;background-position:top">
<img src="website/pixel.png" width="15px" height="30px" onclick="decrease()" onclick="slider()">
</div>
<div id="up" style="float:right;margin-top:29px;height:27px;width:15px;display:block;cursor:pointer;background:url('website/arrow_right.png') no-repeat top left;background-repeat:no-repeat;background-position:top">
<img src="website/pixel.png" width="15px" height="30px" onclick="increase()" onclick="slider()">
</div>
<table style="background:url('website/arrow_middle.png') no-repeat center" align="center">
<tr id="pg1" style="display:inline">
<td style="padding-left:25px; padding-right:25px">
<a href="google.com">
<img src="website/oil.jpg" width="75px" height="75px">
</a>
</td>
<td style="padding-right:25px">
<a href="amazon.com">
<img src="website/gas.jpg" width="75px" height="75px">
</a>
</td>
</tr>
<tr id="pg2" style="display:none">
<td style="padding-left:25px; padding-right:25px">
<a href="google.com">
<img src="website/nuclear.jpg" width="75px" height="75px">
</a>
</td>
<td style="padding-right:25px">
<a href="amazon.com">
<img src="website/solar.jpg" width="75px" height="75px">
</a>
</td>
</tr>
<tr id="pg3" style="display:none">
<td style="padding-left:25px; padding-right:25px">
<a href="google.com">
<img src="website/wind.jpg" width="75px" height="75px">
</a>
</td>
<td style="padding-right:25px">
<a href="amazon.com">
<img src="website/hydro.jpg" width="75px" height="75px">
</a>
</td>
</tr>
<tr id="pg4" style="display:none">
<td style="padding-left:25px; padding-right:25px">
<a href="google.com">
<img src="website/electric.jpg" width="75px" height="75px">
</a>
</td>
<td style="padding-right:25px">
<a href="amazon.com">
<img src="website/thermal.jpg" width="75px" height="75px">
</a>
</td>
</tr>
<tr id="pg5" style="display:none">
<td style="padding-left:25px; padding-right:25px">
<a href="google.com">
<img src="website/mining.jpg" width="75px" height="75px">
</a>
</td>
<td style="padding-right:25px">
<a href="amazon.com">
<img src="website/transversal.jpg" width="75px" height="75px">
</a>
</td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:2)
变量的美元符号仅用于PHP等语言。第7行在比较if中的变量时取出美元符号,你应该好好去。
if($pagenumber == 1)
到
if(pagenumber == 1)
更新1:
此外,您的元素设置了2个不同的onclick
属性。如果您确实需要onclick
来调用2个函数,请尝试以下方法:
<img src="website/pixel.png" width="15px" height="30px" onclick="increase();slider()">
更新2:
要通过JavaScript更改background-position
CSS属性,该属性称为backgorundPosition
。所以试试这个:
document.getElementById('down').style.backgroundPosition = 'bottom';
答案 1 :(得分:1)
问题1:
这一行是问题所在:
if($pagenumber == 1)
将此行更改为:
if(pagenumber == 1)
由于您的变量名称为pagenumber
,所以:
var pagenumber=1;
问题2:
检查pagenumber == 1
后立即返回,这就是为什么它永不递增。将您的代码更改为:
if(pagenumber == 1)
return ++pagenumber;
如果您不想从函数返回值,那么:
function increase() {
if(pagenumber == 1)
pagenumber++;
}
另外,请确保HTML代码中只有一个onclick
事件处理程序。
答案 2 :(得分:0)
搞定了:http://jsfiddle.net/xGWp3/1/
$pagenumber
必须为pagenumber
pagenumber
永远不会增加;如果它是1
,它开始于,increase()
函数在它可以递增之前返回。
尝试重写increase()
和decrease()
,如下所示:
function increase()
{
if (pagenumber < 5)
{
pagenumber++;
}
}
function decrease()
{
if (pagenumber > 1)
{
pagenumber--;
}
}
您可能还需要将onclick
属性更改为onclick="increase(); slider()"
形式;我不认为你可以在一个HTML标签上有两个onclick属性。
您的功能不在声明的全局范围内;试着像这样声明:
increase = function ()
{
//...
}
document.getElementById('pg1').style.display='h';
应该是
document.getElementById('pg1').style.display='none';
解决了所有这些问题后,代码似乎有效:http://jsfiddle.net/xGWp3/1/