Я хотел сделать прокручивающее колесо мыши между первым и вторым экранами, чтобы выровнять эффект переключения. Я столкнулся с множеством проблем. Позже, с помощью KK, я наконец решил эту проблему. Я был очень счастлив, поэтому я записал:
Мой первоначальный код выглядит так:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><style>div {width: 700px;height: 1000px;}.red {background-color: red;}.yellow {background-color: yellow;}</style></head><body><div> </div><div> </div><div> </div> <div> </div> <div> </div> <div> </div> </body> <script src = "../ jquery/jquery.min.js"> </script> <script src = "test.js"> </script> </html> <script src = " $ (document) .ready (function () {var height = $ (window) .height (); // Получить размер в данный момент видимой области в окне браузера // переключить весь экран после прокрутки мыши var scrollfunc = function (e) {var scrolltop = document.body.scrolltop || document.documentelement.scrolltom window.event; if ((e.wheeldelta <0 || e.detail> 0) && scrolltop> = 0 && scrolltop <height) {// Прокрутка вниз по разным браузерам $ (document.doby) .Animate ({scrolltop: height}, «быстро»); $ (Document.documentelement). if ((e.wheeldelta> 0 || e.detail <0) && scrolltop> = height && scrolltop <= height+20) {// Прокрутить разные браузеры $ (документ if (document.addeventlistener) {document.addeventlistener ('dommousescroll', scrollfunc, false);} window.onmousewheel = document.onmousewheel = scrollfunc;Я проверил такие коды в IE и Firefox, но событие OnmouseWheel всегда будет запускаться несколько раз под Google. Это чрезвычайно раздражающая вещь. Почему это запускается несколько раз? После отладки я обнаружил, что каждый раз, когда мы прокручиваем мышь, мы всегда много прокручивали за раз, вместо того, чтобы медленно прокручивать одну небольшую сетку и одну небольшую сетку. Это приводит к тому, что событие Onmousewheel запускается много раз при прокрутке, и вызывается функция Scrollfunc. Когда функция одования в функции не выполняется, она будет вызоваться непрерывно, так что прокрутка не может свернуть, а страница не может свернуться. Итак, я изменил приведенный выше код JS на следующее:
$ (document) .ready (function () {var height = $ (window) .height (); var scrollfunc = function (e) {document.onmousewheel = undefined; var scrolltop = document.body.scrolltop || document.documentelement.scrolltop; e = e || scrolltop> = 0 && scrolltop <eight) {$ (document.body) .animate ({scrolltop: height}, "fast", "linear", function () {document.onmousewheel = scrollfunc;}); $ (document.documentelement) .animate ({scrolltop: height}, ",", ", function). scrollfunc;});} else if if ((e.wheeldelta> 0 || e.detail <0) && scrolltop> = height && scrolltop <= height+20) {$ (document.body) .Animate ({scrolltop: 0}, "быстро", "linear", function () {document.onmousewwh scrollfunc;}); $ (document.documentelement) .animate ({scrolltop: 0}, "быстро", "linear", function () {document.onmousewheel = scrollfunc;});}}; if (document.addeventlistener) {document.AddevEntener ('dommouseScroll', scrollfUnc) = scrollfunc;});Хорошо, код сейчас работает нормально, но, поскольку я новичок и код не написан достаточно изящно, мне снова сказал К.К. По его подсказке я изменил избыточный код:
$ (document) .ready (function () {var height = $ (window) .height (); var width = $ (window) .width (); body; if (navigator.useragent.indexof ("firefox")> 0 || navigator.useragent.indexof ("msie")> 0) {body = document.documenterment; isfinish = true; var scrollfunc = function (e) {if (isfinish) {var scrolltop = body.scrolltop; e = e || e.detail <0) && scrolltop> = height && scrolltop <= height+20) {scroll (0);}}}; var scroll = function (height) {isfinish = false; $ (тело). Анимат ({scrolltop: height}, «быстро», «линейный», function () {isfinish = = true;});}; if (navigator.useragent.indexof ("firefox")> 0) {if (document.addeventListener) {document.addeventListener ('dommousescroll', scrollfunc, false);}} else {document.onmousewheel = scrollfunc;});Наконец -то получил код для введения. Я должен сказать, что я многому научился, решая эту проблему. В будущем мы должны работать усерднее к цели «писать меньше, делать больше»! ! !
Если в письме есть что -то не так, пожалуйста, дайте мне совет от всех мастеров, и я смиренно узнаю.