/* * @author: marte * @date: 2018-05-20 09:03:53 * @last modified by: marte * @last modified time: 2018-06-11 16:18:47 */ 'use strict'; // 在这里修改id,和速度 $(function(){ if (window.screen.width > 768) { var api1 = new myapi(); api1.mousescroll.inte($('#scrolllayout'),10); var api2 = new myapi(); api2.mousescroll.inte($('#div1'),10); } }) //下面别动 function myapi(){ this.mousescroll = { inte : function(obj,value){ this.obj = obj; this.addscroll(obj); var outh = obj.outerheight(), oscrollcontent = obj.children(':first'), contenth = oscrollcontent.outerheight(), oyscrollinnerh = outh/contenth*outh, oyscrollouter = obj.find('#yscrollouter'), oyscrollinner = obj.find('#yscrollinner'); obj.css({'position': 'relative','overflow':'hidden'}); oscrollcontent.css('position', 'absolute'); if(contenth > outh){ this.mousehover(obj, oyscrollouter, oyscrollinner); this.mousewheel(obj, value, oscrollcontent, oyscrollinner, outh, contenth, oyscrollinnerh ); this.mousemoved(obj, oscrollcontent, oyscrollouter, oyscrollinner, outh, contenth, oyscrollinnerh ); }; }, addscroll : function(obj,value){ obj.append('
'); $('#yscrollinner').css('cursor','pointer'); }, mousehover : function(obj, outer, inner){ // obj.hover(function() { // outer.fadein(400); // }, function() { // outer.fadeout(400); // }); inner.hover(function() { $('body').css({ '-moz-user-select': 'none', '-webkit-user-select': 'none', '-ms-user-select': 'none', '-khtml-user-select': 'none', 'user-select': 'none',}); }, function() { $('body').css({ '-moz-user-select': 'auto', '-webkit-user-select': 'auto', '-ms-user-select': 'auto', '-khtml-user-select': 'auto', 'user-select': 'auto',}); }); }, mousewheel : function(obj, value, o, inner, h1, h2, h3){ var oscrollcontentval = value/(h1 - h3)*(h2 - h1); inner.height(h3); //滚动条高度 obj.on('mousewheel',function(event,delta ){ //绑定滚轮事件 event.preventdefault(); //阻止浏览器默认为行 var delta = event.originalevent.wheeldelta; var oyscrollinnertop = inner.position().top; var oscrollcontenttop = o.position().top; if(delta > 0){ if(oyscrollinnertop - value < 0){ inner.css('top', 0); o.css('top', 0); }else{ inner.css('top', oyscrollinnertop - value); o.css('top', oscrollcontenttop + oscrollcontentval); } }else{ if(oyscrollinnertop + value > h1 - h3){ inner.css('top', h1 - h3); o.css('top', h1 - h2); }else{ inner.css('top', oyscrollinnertop + value); o.css('top', oscrollcontenttop - oscrollcontentval); } }; }); }, mousemoved : function(obj, o, outer, inner, h1, h2, h3){ inner.on('mousedown',function(event){ //绑定鼠标事件 var clienty = event.clienty, oyscrollinnertop = inner.position().top, oscrollcontenttop = o.position().top, movey = 0; $(document).on('mousemove',function(event){ movey = event.clienty - clienty; var oscrollcontentmove = movey/(h1 - h3)*(h2 - h1); if(oyscrollinnertop + movey < 0){ inner.css('top', 0); o.css('top', 0); }else if(oyscrollinnertop + movey > h1 - h3){ inner.css('top', h1 - h3); o.css('top', h1 - h2); }else{ inner.css('top', oyscrollinnertop + movey); o.css('top', oscrollcontenttop - oscrollcontentmove); } }); $(document).on('mouseup',function(event){ $(document).off('mousemove'); }) }) } } }