跨浏览器鼠标滚轮,通过一个单独的滚轮滚动100%浏览器高度

时间:2014-08-11 19:46:05

标签: javascript jquery css scroll mousewheel

有一些js

$(document).ready(function(){
var winHeight = window.innerHeight ?
        function() {
            return window.innerHeight;
        } :
        function() {
            return document.documentElement.clientHeight;
        };
$('.first-block').height(winHeight);
$(window).scroll(function(){

var firstBlockHeight = winHeight();
var scrollTop= $('body').scrollTop();

if (scrollTop > 0 && scrollTop < firstBlockHeight/2 && $('body').hasClass('scrolled') === false) {
$("body")
  .animate({ scrollTop: firstBlockHeight+10 }, 600)
  .addClass('scrolled');

} else if (scrollTop==0) {
$("body")
.animate({ scrollTop: 0 }, 600)
.removeClass('scrolled');
}
 });
 });

通过单个鼠标滚轮滚动第一个块100%高度。这个代码在firefox中不起作用..如果玩滚动有错误..帮助请修复它并添加跨浏览器支持。 请参阅JsFiddle

感谢。

1 个答案:

答案 0 :(得分:0)

我使用mousewheel.js而且我这样做! :) 可能对某人有用

$(document).ready(function(){
var winHeight = window.innerHeight ?
            function() {
                return window.innerHeight;
            } :
            function() {
                return document.documentElement.clientHeight;
            };
$('.first-block').height(winHeight);
var BlockHeight = $('.first-block').height();
$.browser = {};
$.browser.mozilla = /mozilla/.test(navigator.userAgent.toLowerCase()) &&     !/webkit/.test(navigator.userAgent.toLowerCase());
if($.browser.mozilla)
{
 var ScrollType = 'html';
  }
else
   {
 var ScrollType = 'body';
  }
$('.first-block').mousewheel(function(event, delta, deltaX, deltaY) {
  if((delta<0) && ($(ScrollType).scrollTop()==0)) $(ScrollType).animate({ scrollTop: BlockHeight-    104 }, 600);
});

$(ScrollType).keydown(function(event){
 if((event.keyCode==40) && ($(ScrollType).scrollTop()==0)) $(ScrollType).animate({ scrollTop:  BlockHeight-104 }, 600);
})

});

谢谢我)