2012-07-24 96 views
0

以下是我用於我的網站的代碼 每個圖像鏈接設置爲單擊時前進到下一個圖像 問題是,當我點擊圖像的頁面滾動回頂部。我想這停止當點擊圖片href =#它滾動到頂部

我已經使用了onclick標記上的返回false標記,但當圖像被點擊時它會不斷滾動圖像數組。

任何解決方案?下面是我的代碼

<script language="JavaScript"> 

    <!-- --> 


var interval = 1500; 
var random_display = 0; 
var imageDir = "imgs/"; 

var imageNum = 0; 
imageArray = new Array(); 
imageArray[imageNum++] = new imageItem(imageDir + "1.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "2.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "3.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "4.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "5.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "6.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "7.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "8.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "9.jpg"); 
imageArray[imageNum++] = new imageItem(imageDir + "10.jpg"); 

var imageNumTwo = 0; 
imageArrayTwo = new Array(); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t1.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t2.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t3.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t4.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t5.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t6.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t7.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t8.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t9.jpg"); 
imageArrayTwo[imageNumTwo++] = new imageItem(imageDir + "t10.jpg"); 

var imageNumThree = 0; 
imageArrayThree = new Array(); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th1.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th2.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th3.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th4.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th5.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th6.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th7.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th8.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th9.jpg"); 
imageArrayThree[imageNumThree++] = new imageItem(imageDir + "th10.jpg");  


var totalImages = imageArray.length; 
var totalImagesTwo = imageArrayTwo.length; 
var totalImagesThree = imageArrayThree.length; 

function imageItem(image_location) { 
    this.image_item = new Image(); 
    this.image_item.src = image_location; 
} 
function get_ImageItemLocation(imageObj) { 
    return(imageObj.image_item.src) 
} 


function randNum(x, y) { 
    var range = y - x + 1; 
    return Math.floor(Math.random() * range) + x; 
} 

function getNextImage() { 
    if (random_display) { 
     imageNum = randNum(0, totalImages-1); 
    } 
    else { 
     imageNum = (imageNum+1) % totalImages; 
    } 

    var new_image = get_ImageItemLocation(imageArray[imageNum]); 
return(new_image); 
} 


function getNextImageTwo() { 
    if (random_display) { 
     imageNumTwo = randNum(0, totalImagesTwo-1); 
    } 
    else { 
     imageNumTwo = (imageNumTwo+1) % totalImagesTwo; 
    } 

    var new_image = get_ImageItemLocation(imageArrayTwo[imageNumTwo]); 
return(new_image); 
} 


function getNextImageThree() { 
    if (random_display) { 
     imageNumThree = randNum(0, totalImagesTwo-1); 
    } 
    else { 
     imageNumThree = (imageNumThree+1) % totalImagesThree; 
    } 

    var new_image = get_ImageItemLocation(imageArrayThree[imageNumThree]); 
return(new_image); 
} 


function prevImage(place) { 
    var new_image = getPrevImage(); 
    document[place].src = new_image; 
} 

function switchImage(place) { 
    var new_image = getNextImage(); 
    document[place].src = new_image; 
    var recur_call = "switchImage('"+place+"')"; 
    timerID = setTimeout(recur_call, interval); 
    } 

function switchImageTwo(place) { 
    var new_image = getNextImageTwo(); 
    document[place].src = new_image; 
    var recur_call = "switchImageTwo('"+place+"')"; 
    timerID = setTimeout(recur_call, interval); 
    } 


function switchImageThree(place) { 
    var new_image = getNextImageThree(); 
    document[place].src = new_image; 
    var recur_call = "switchImageThree('"+place+"')"; 
    timerID = setTimeout(recur_call, interval); 
    } 


</script> 




    </head> 

<body> 


<div id="content"> 
<div id="title"><a href="mailto:[email protected]"><center><img src="imgs/adil.gif" alt="A D I L" width="293" height="115" border="0"></center></a></div> 
<div id="books"> 
    <p><a href="#" onclick="switchImage('slideImg'); clearTimeout(timerID)"><img src="imgs/1.jpg" name="slideImg" width="300" height="427" border="0"></a> 
    <img src="imgs/px.gif" width="40"> 
    <a href="#" onclick="switchImageTwo('slideImg2'); clearTimeout(timerID)"><img src="imgs/t1.jpg" name="slideImg2" width="300" height="423" border="0"></a> 
    <img src="imgs/px.gif" width="40"> 
    <a href="#" onclick="switchImageThree('slideImg3'); clearTimeout(timerID)"><img src="imgs/th1.jpg" name="slideImg3" width="300" height="427" border="0"></a> 
    <img src="imgs/px.gif" width="993" height="40"></p> 
+0

https://developer.mozilla.org/en/JavaScript/Guide/Values,_Variables,_and_Literals#Array_literals – Esailija 2012-07-24 16:47:36

+0

[Href =「#」Do not Scroll](http://stackoverflow.com/問題/ 1255726/href-dont-scroll) – 2012-07-24 16:49:21

+0

完全離開你的問題 - 爲什麼你有30個近乎完全相同的分配線。你爲什麼不通過一個或多個'for'循環來賦值? – freefaller 2012-07-24 17:04:44

回答

0

我想你只需要從你的點擊處理函數調用的任何函數返回false。

+0

我已經完成了。它有助於停止滾動到頂端,但隨後出現了一個新問題。這個問題是,數組中的圖像保持切換而不被點擊 – user1533063 2012-07-24 16:51:15

+0

你應該尋找一個問題來解決你的代碼中導致圖像切換的基本問題 - 包括你的點擊處理程序的設置方式會有所幫助。您也可以嘗試使用preventDefault,而不是返回false(https://developer.mozilla.org/en/DOM:event.preventDefault)。 – AlexCuse 2012-07-24 17:01:58