已看'+Math.round(((xxx[0].scrolltop+thescroll.clientHeight)/xxx[0].scrollHeight)*100)+'%
' }} } } console.log('目录记录加载') }, scroll:{ load:function(theparent){ this.scrollInterval; this.scrollStatus = theparent.add({ status: '已停止' }, 'status').name('滚动状态'); this.scrollStatus.domElement.style.color = 'red'; this.scrollSpeed = theparent.add({ speed: 1 }, 'speed').name('滚动速度'); this.scrollSpeed.setValue(thedata.read.scroll_speed) this.scrollSpeedsave = theparent.add({ speedsave: false }, 'speedsave').name('保存速度').onChange(function(value) { if (value==true) { thedata.read.scroll_speed=reader.scroll.scrollSpeed.getValue() console.log('保存速度:'+thedata.read.scroll_speed) fqxsydqdata.savedata() } }); this.nextpage = theparent.add({ nextpage: false }, 'nextpage').name('结尾自动翻页+自动滚动').onFinishChange((value)=>{localStorage.scroll=String(value)}) this.stopButton = theparent.add(this, 'start').name('开始自动滚动'); }, autoScroll:async function() { if (thescroll.scrollTop >= thescroll.scrollHeight - thescroll.clientHeight) { console.log('滚动以至底部') window.reader.scroll.stopAutoScroll(); if(reader.scroll.nextpage['$input'].checked==true){ console.log('即将开始切换') await sleep(1000) if(document.querySelectorAll('.byte-btn')[1].innerText.includes('下一章')==false){ alert('现在是最新一章了~') localStorage.scroll=true } else document.querySelectorAll('.byte-btn')[1].click() } }else{ thescroll.scrollTop += Math.round(reader.scroll.scrollSpeed.getValue()) } }, startAutoScroll:function() { this.scrollInterval = setInterval(this.autoScroll, 200); this.scrollStatus.setValue('进行中'); this.stopButton.name('停止自动滚动'); this.scrollStatus.domElement.style.color = 'green'; }, stopAutoScroll:function() { clearInterval(this.scrollInterval); this.scrollStatus.setValue('已停止'); this.stopButton.name('开始自动滚动'); this.scrollStatus.domElement.style.color = 'red'; }, "start":()=>{ var x=reader.scroll if(x.scrollStatus.getValue()=='已停止'){ if(String(Number(x.scrollSpeed.getValue()))=='NaN'){ alert('滚动速度输入非数字') return } if(x.scrollSpeed.getValue()>=1000){ alert('滚动速度输入过大\n如有需要请在脚本后台修改上限\n如有错误作者概不负责') return } console.log('滚动速度:'+Math.round(x.scrollSpeed.getValue())) x.startAutoScroll(); }else{ x.stopAutoScroll(); } } }, keyboard:function(){ document.addEventListener("keyup", function (e) { delete reader.mark.keydown[e.key] }) document.addEventListener("keydown", function (e) { reader.mark.keydown[e.key]=true if(e.keyCode==39||e.keyCode==37){ document.querySelectorAll('.byte-btn')[[37,39].indexOf(e.keyCode)].click() if(document.querySelectorAll('.byte-btn')[1].innerText!=='下一章' && e.keyCode==39){ location.pathname='/reader/'+unsafeWindow.__INITIAL_STATE__.reader.chapterData.nextItemId } } }); }, mark:{ keydown:{}, }, newbookmark:function(){ var ele=document.createElement('div') this.imgurl=[ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMESURBVFhHxZe9T2JBEMBnVw5CYggY7g4TCzXa2FDYkZiACQUaNdHEf8DE1hatjDZWJgajFHYWEBu0kA8xUNgaO42FUTtz16gRg3on73aWeU8eyMEp790v2TAzhN2Z3Z3ZoQ0AmMfj+epwONwPDw9Fob+KYR4XFxffSDQdRVGcDB3o6+v7STbJwMCAQmJLGRwchO3tbUaqROdAKpVSQqEQUx0YGhoCu92OngJj5d+hXAnqnHNNrgR/g7bb21s4Pj6WtmAwCGtra29OnJ6eekiU4OKt3oF8Pi/nw3nHxsZ0c/NisWgl2TACgYAWsbpbKtxisZh6619eXkgqw9vb23+RbAptbZj5b3C3222qA11dXSQRl5eX30mUGHEJ6yEyxMmfn59/k/5f4J2dnSWSDSOZTCqjo6NykEkD09BCsmGMjIzoqp+KKFR36IA+MVtMJpORkd/c3ACO6l1geAl7e3t/kK69A2dnZ+96/S+oCxcKBRB3TdpsNhuI1Adx9DAxMeEyNPpGPD4+yjtgI73l7O/vs5OTE4a5j5Hj6O/vB7Thd06nE3hHRwc2IYaSy+UYbjsOXJjM4Pf7gd/f338h3VDwzHFU0t3dDabdAYx8dnaWtDe41Wo17TUUt74ms3ipVDKl7iOY4lNTU9p619fXn38Ns9nshwOQWSCKxIfugfpqzs3NafLu7m5DZ2oaEtEgNO1AOp1WlpeXdc+1z+cjCWBhYQFWV1eb3hGXy3XHn56e9C1KHTC6RCIBsViMLOVyvbW1xSrLttBhcXGxrhM1PaGoTg37gaWlJQWjOzo6kjouWP1WbGxswPT0tJR3dnZgcnJSiUajDXeDi77/rw6IM1bi8biU8X9CvUdKVDUmImczMzNSPz8/h8PDQwiHw/LYpFHw+qrPenZ1deXs6em5I117DasZHx+HlZWVdxevZm9vT5mfnydNj9frxWPU5mHYl2FjQLqk0onh4WFYX19vauFqNjc3lUgkQlqZmh1EB0jUoTpxcHDQ8BwbgXPV21kjcNBnEwD8AdH2P3swjPSdAAAAAElFTkSuQmCC', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAF0SURBVFhH7ZZLjoMwDIbpLGY5Ym6ARC9TLskVWPFopd6CHRXcgBVrJrZ+05ASoC2PReeTKseOY5s4ieoYfEN+OO1KFEXRIkXHAZJJkqQ9nU4Hcib9druxfQl832dJMY/HYy9vDy5VAXVRKK65C1+Qu/FfwO4FPMAnUAF1dT6jBXEc8/Ubeog2KSAIAvvDY4IjsNgZyLKMv1wwd+GhMnIieVCw4Q0kmTzDgjzx1+v1d9dD2DQNRhq8Twqoi2BrQRiGLoZ34LdoAQQlNvtflqW7aws8z9vuIaL/AHmeQxsBHVi8BUOoNNu2gD5MPwdVVb3fgsvl8vJuue7jJZjdArj1iKJodB356DtQ1/Vz1zBNUw6gQ3YMGfOq6UzNMxxFAbWDFg4lF2BibEnG5jo4ggIqM5ZYMAsUHdOM2KEOw6sVUK3PqA3TX340JzZ2tMErB5hcqEG+NmbFgS/zTGKToUIwNY04n8/nlwsQOLMC6ur8QM7Acf4AF49hCmafcDMAAAAASUVORK5CYII=', ] ele.innerHTML= ` ` document.querySelector('.reader-toolbar div').appendChild(ele) this.ele=ele this.createBookmark=function() { if(reader.bookmark.ele1){ document.body.children[8].remove(); reader.bookmark.ele1=undefined return }; var ele1=document.createElement('div') Object.assign(ele1.style,{ position: 'absolute', height:'350px', width:'400px', maxWidth: '400px', display: 'block', top: '180px', left: '169px', transformOrigin: '100% 50% 0px', backgroundColor: '#f6f6f6', borderRadius:'20px', }) ele1.innerHTML= `