2012-12-20 119 views
3

我有一個div,其中有很多內容穿過頁面大小。所以我想知道是否可以在div上下分別添加「向上箭頭圖像」和「向下箭頭圖像」。當我將鼠標懸停在圖像上時,div上的內容將像在頁面上滾動的方式一樣開始滾動。但我不想要一個滾動條出現在我的div旁邊..我絕對只想當內容滾動時,我將鼠標懸停在圖像上。將鼠標懸停在圖像上滾動div的內容

在下面的代碼中,當我將鼠標懸停在「HOVER ME」div上時跳轉到div的末尾。所以我想要一個類似的功能與滾動效果和沒有滾動條旁邊..是否有可能?這是jsfiddle link

HTML代碼:

<a href="#last">Last</a> 
<div id="hover"> HOVER ME </div> 
<div id="container"> 
    <div><a name=""></a> One </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name=""></a> Stuff </div> 
    <div><a name="last"></a> Last </div> 
<br class="clear"> 
</div>​ 

CSS代碼:

#hover{ 
    width:200px; 
    height:20px; 
border:1px solid #cc0000; 
} 
#container{ 
    width:500px; 
    height:300px; 
overflow-y:auto; 
    border:1px solid #000; 
} 
#container div{ 
    width:100px; 
height:100px;  
    float:left; 
} 
.clear{ 
clear:both; 
} 

JAVASCRIPT:

$('#hover').hover(function(){ 
    window.location = '#last'; 
});​ 

回答

2

唯一的變化是在這裏:

$('#hover').hover(function(){ 
    $('#container').animate({ scrollTop: $('#container')[0].scrollHeight }, 1000); 
});​ 

在我已經改變了overflow屬性來hidden容器的CSS樣式。

+0

非常感謝。我在jQuery中有點新手。所以如果我必須滾動「向上」,我該如何修改小提琴......在此先感謝.. –

+1

'$('#container')。animate({scrollTop:0},1000);' – BenM

+1

@Minko Gechev thanks bro .. 我很感激。 –

1

爲什麼推倒重來

你可以使用jQuery插件http://logicbox.net/jquery/simplyscroll/vertical.html

+0

爲什麼添加一個插件,當你可以做一個換行......少插件意味着更快的頁面加載等,這有助於用戶體驗和搜索引擎優化。 – webnoob

+0

@Moes:謝謝,但webnoob是正確的。我認爲選擇的答案更好。但感謝您的幫助.. Upvoted。 –

+0

@kapilchhattani歡迎您的光臨謝謝 – Moes

1

嘗試設置的時間間隔,然後動畫元素的scrollTop屬性:

$(function() { 
    var current_scroll = 0, 
     container = $('#container'), 
     timer 

    $('#hover').hover(function() { 
     timer = window.setInterval(scrollDiv, 30); 
    }, function() { 
     window.clearInterval(timer); 
    });​​​​​ 

    function scrollDiv() 
    { 
     var new_scroll = current_scroll += 10; 
     container.scrollTop(new_scroll); 
     current_scroll = new_scroll; 
    } 
}); 

您可以修改間隔或量每次達到你想要的速度滾動。請在這裏看到一個工作演示>http://jsfiddle.net/tUYKS/

+0

謝謝,但是一旦滾動完成,你的小提琴停止工作。但還是謝謝。 Upvoted。 –

0

這樣,您就可以獲取到last div#container,發現div的offset()top,只是申請滾動。

$('#hover').hover(function(){ 
    $('#container').animate({ scrollTop: $('#container div:last').offset().top }, 1000); 
});