You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.3 KiB

$(function () {
var $main = $('.main');
var $list = $('.talk_list');
var $drager = $('.drager');
var $mainh = $main.outerHeight(false);
var $listh = $list.outerHeight(false);
var $rate = $mainh / $listh;
var $dragh = $mainh * $rate;
var $top = 0;
$drager.css({ 'height': $dragh });
$drager.draggable({
containment: "parent",
drag: function (ev, ui) {
$top = ui.position.top;
$list.css({ 'top': -$top / $rate });
}
});
$(window).resize(function () {
resetui();
});
//var timer = null;
var flag = false;
$main.mousewheel(function(ev,delta){
//console.log(delta);
//clearTimeout(timer);
//timer = setTimeout(function(){
// 向上滚动正值,向下滚动负值
if(flag){
return;
}
flag = true;
setTimeout(function(){
flag = false;
},300);
if($listh <= $mainh){
return;
}else{
if(delta>0){
$top = $top-60;
if($top<0){
$top=0;
}
$drager.animate({ 'top': $top },200);
$list.animate({ 'top': -$top / $rate },200);
}else{
$top = $top+60;
if($top>($mainh-$dragh)){
$top=parseInt($mainh-$dragh);
}
$drager.animate({ 'top': $top },200);
$list.animate({ 'top': -parseInt($top / $rate) },200);
}
}
//},300);
});
if ($listh <= $mainh) {
$('.drag_bar').hide();
$('.drager').hide();
}
function resetui(){
$mainh = $main.outerHeight(false);
$listh = $list.outerHeight(false);
$rate = $mainh / $listh;
$dragh = $mainh * $rate;
$drager.css({ 'height': $dragh });
if ($listh <= $mainh) {
$('.drag_bar').hide();
$drager.hide();
$list.css({ 'top':0 });
} else {
$('.drag_bar').show();
$drager.show();
$drager.css({ 'top': $mainh-$dragh });
$list.css({ 'top': -($listh-$mainh) });
}
}
window.resetui = resetui;
})