2
我想通過懸停某些元素來模擬滾動條箭頭的點擊。 基本例如:如何使滾動與單擊滾動條箭頭一樣真實?
function scrollBody(dir, speed){
$('html, body').animate(
{'scrollTop': dir+'='+speed+'px'},
{duration: 300, easing: 'easeOutQuad'}
);
};
$('#top').hover(function(){scrollBody('-', '50')});
$('#bottom').hover(function(){scrollBody('+', '50')});
$('#top-fast').hover(function(){scrollBody('-', '150')});
$('#bottom-fast').hover(function(){scrollBody('+', '150')});
#content{width: 300px}
.scroller{
position: fixed;
background-color: grey;
color: white;
right:0;
padding: 5px;
width: 35px;
}
.scroller:hover{background-color:green}
#top{top:35px}
#bottom{bottom:35px}
#top-fast{top:0}
#bottom-fast{bottom:0}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<div id="content">
Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet
</div>
<div id="top" class="scroller">
2Top
</div>
<div id="bottom" class="scroller">
2Bot
</div>
<div id="top-fast" class="scroller">
2T++
</div>
<div id="bottom-fast" class="scroller">
2B++
</div>
我知道,這是很簡單,更糟的是,它有打嗝......你需要移動光標,以保持它的滾動。 我想把它變成一個連續的平滑滾動。
這個我simply turned it recursively (fiddle)後,但我得到了堆棧溢出(控制檯),我應該用stopPropagation
在某一點(幾個遞歸之後)或而不是使用懸停的切換回路(不徘徊時停止)或別的東西, ?
如果你知道其他方法(沒有jQuery-UI來平滑它,甚至沒有jQuery),我將不勝感激!
謝謝,在我的片段中,所有元素都有'scroller'類,我爲它們分別分配了一個懸停事件,並對它們進行相應的動畫處理。你能提供一個你想法的片段嗎? (順便說一句,複製我的,我欣賞它:) – Armfoot
好吧,我會看看小提琴。你真的很接近。基本上,我會試着利用[懸停的'handlerOut'函數](http://api.jquery.com/hover/)。所以你的第一個功能就是在給定的方向上開始滾動,而你的第二個功能將結束滾動。我不得不查找文檔清除/停止。這有幫助嗎? –
已更新。不漂亮,但應該讓你順利。請清理它! –