66// @description Powerful picture viewing tool online, which can popup/scale/rotate/batch save pictures or find the HD original picture automatically
77// @description :zh-CN NLF 的围观图修改版,增加高清原图查找显示(在线看图工具,支持图片翻转、旋转、缩放、弹出大图、批量保存、查找原图)
88// @description :zh-TW NLF 的圍觀圖修改版,增加高清原圖查詢顯示(線上看圖工具,支援圖片翻轉、旋轉、縮放、彈出大圖、批量儲存、查詢原圖)
9- // @version 2017.4.8.1
9+ // @version 2017.4.8.2
1010// @created 2011-6-15
1111// @namespace http://userscripts.org/users/NLF
1212// @homepage http://hoothin.com
8686 gallery :{ //图库相关设定
8787 loadAll :false , //加载更多时是否加载全部页面
8888 fitToScreen :true , //图片适应屏幕(适应方式为contain,非cover).
89+ scrollEndToChange :true ,
8990 sidebarPosition : 'bottom' , //'top' 'right' 'bottom' 'left' 四个可能值
9091 sidebarSize : 120 , //侧栏的高(如果是水平放置)或者宽(如果是垂直放置)
9192 sidebarToggle : true , // 是否显示隐藏按钮
@@ -2462,19 +2463,29 @@ padding-left:24px;">'+shareItem.name+'</span>');
24622463 } , 200 ) ;
24632464 } , false ) ;
24642465
2466+ var canScroll = true ;
2467+ var scrollToChange = function ( next ) {
2468+ if ( canScroll ) {
2469+ canScroll = false ;
2470+ setTimeout ( function ( ) {
2471+ canScroll = true ;
2472+ } , 200 ) ;
2473+ next ? self . selectNext ( ) : self . selectPrevious ( ) ;
2474+ }
2475+ }
24652476 addWheelEvent ( eleMaps [ 'body' ] , function ( e ) { //wheel事件
24662477 if ( e . deltaZ != 0 ) return ; //z轴
24672478 var target = e . target ;
24682479 e . preventDefault ( ) ;
24692480 if ( eleMaps [ 'sidebar-container' ] . contains ( target ) ) { //缩略图区滚动滚轮翻图片
2470- var distance = self . thumbSpanOuterSize ;
2481+ var distance = self . thumbSpanOuterSize / 3 ;
24712482
24722483 if ( e . deltaY < 0 || e . deltaX < 0 ) { //向上滚
24732484 distance = - distance ;
24742485 } ;
24752486 thumbScrollbar . scrollBy ( distance )
24762487 } else { //图片区域滚动
2477- var distance = 100 ;
2488+ var distance = 20 ;
24782489 if ( e . deltaY != 0 ) { //y轴
24792490 if ( self . img . classList . contains ( 'pv-gallery-img_zoom-out' ) ) { //图片可以缩小时,滚动图片,否则切换图片。
24802491 if ( e . deltaY < 0 ) {
@@ -2483,10 +2494,12 @@ padding-left:24px;">'+shareItem.name+'</span>');
24832494 if ( eleMaps [ 'img-scrollbar-h' ] . contains ( target ) ) { //如果在横向滚动条上。
24842495 imgScrollbarH . scrollBy ( distance ) ;
24852496 } else {
2486- imgScrollbarV . scrollBy ( distance ) ;
2497+ if ( imgScrollbarV . scrollBy ( distance ) && prefs . gallery . scrollEndToChange ) {
2498+ scrollToChange ( e . deltaY > 0 ) ;
2499+ }
24872500 } ;
24882501 } else {
2489- e . deltaY < 0 ? self . selectPrevious ( ) : self . selectNext ( ) ;
2502+ scrollToChange ( e . deltaY > 0 ) ;
24902503 } ;
24912504 } else { //x轴
24922505 if ( e . deltaX < 0 ) {
@@ -3687,13 +3700,15 @@ display:none !important;\
36873700<head>\
36883701<title>' + title + ' 导出大图</title>\
36893702<style>\
3690- div { float: left; max-height: 180px; max-width: 320px; margin: 2px; }\
3691- img { max-height: 180px; max-width: 320px; }\
3703+ .grid>div { float: left; max-height: 180px; max-width: 320px; margin: 2px; }\
3704+ .grid>div>img { max-height: 180px; max-width: 320px; }\
3705+ .list>div {text-align:center;}\
3706+ .list>div>img { max-width: 100%; }\
36923707</style>\
36933708</head>\
3694- <body>\
3709+ <body class="grid" >\
36953710<p>【图片标题】:' + title + '</p>\
3696- <p>【图片数量】:' + nodes . length + '</p>\
3711+ <p>【图片数量】:' + nodes . length + ' <input type="checkbox" checked="checked" onclick="document.body.className=(document.body.className==\'grid\'?\'list\':\'grid\')">平铺对齐 </p>\
36973712' ;
36983713
36993714 html += arr . join ( '\n' ) + '</body>'
@@ -4644,7 +4659,7 @@ background-color:red;\
46444659 this . scrollbar . bar . style . display = 'none' ;
46454660 } ,
46464661 scrollBy :function ( distance , handleDistance ) {
4647- this . scroll ( this . getScrolled ( ) + ( handleDistance ? distance / this . one : distance ) ) ;
4662+ return this . scroll ( this . getScrolled ( ) + ( handleDistance ? distance / this . one : distance ) ) ;
46484663 } ,
46494664 scrollByPages :function ( num ) {
46504665 this . scroll ( this . getScrolled ( ) + ( this . container [ ( this . isHorizontal ? 'clientWidth' : 'clientHeight' ) ] - 10 ) * num ) ;
@@ -4700,8 +4715,10 @@ background-color:red;\
47004715 return ;
47014716 } ;
47024717
4718+ var noScroll = shs [ pro [ 0 ] ] == distance + 'px' ;
47034719 shs [ pro [ 0 ] ] = distance + 'px' ;
47044720 container [ pro [ 1 ] ] = _distance ;
4721+ return noScroll ;
47054722 } ,
47064723 getScrolled :function ( ) {
47074724 return this . container [ ( this . isHorizontal ? 'scrollLeft' : 'scrollTop' ) ] ;
@@ -8244,6 +8261,12 @@ background-image:url("'+ prefs.icons.magnifier +'");\
82448261 section : [ '图库' ] ,
82458262 title : '适应方式为contain,非cover'
82468263 } ,
8264+ 'gallery.scrollEndToChange' : {
8265+ label : '大图滚动到底后切换图片' ,
8266+ type : 'checkbox' ,
8267+ "default" : prefs . gallery . scrollEndToChange ,
8268+ title : '取消上一选项后才有效'
8269+ } ,
82478270 'gallery.loadAll' : {
82488271 label : '加载更多图片时自动处理至尾页' ,
82498272 type : 'checkbox' ,
0 commit comments