摄影图库

http://www.sytuk.com/

分享者: jianghubailei (2226)发布时间: 4小时前

做了下小小的修改
二维码导入
{
    "articleStyle": 2,
    "cacheFirst": true,
    "customOrder": 65,
    "enableJs": true,
    "enabled": true,
    "enabledCookieJar": false,
    "lastUpdateTime": 1770086362188,
    "loadWithBaseUrl": true,
    "preload": false,
    "ruleArticles": "#list li||.img li",
    "ruleContent": "<!DOCTYPE html>\n<html>\n<head>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\">\n  <link rel=\"stylesheet\" href=\"https:\/\/cdn.bootcdn.net\/ajax\/libs\/viewerjs\/1.10.1\/viewer.min.css\">\n  <script src=\"https:\/\/cdn.bootcdn.net\/ajax\/libs\/viewerjs\/1.10.1\/viewer.min.js\"><\/script>\n  <script src=\"http:\/\/libs.baidu.com\/jquery\/2.0.0\/jquery.min.js\"><\/script>\n  {{@@tag.title@html}}\n  <style>\n      body {\n          background: #000000;\n          margin: 0;\n          padding: 0;\n      }\n\n      \/*标题相关*\/\n      h3{text-align:center}\n      h6{margin-bottom:0}\n      \n      \/*图片*\/\n    \timg {\n        display: block;\n        width: 100%;\n        height: auto;\n        border: none;\n        margin: 0 auto;\n    }\n      h5{margin-bottom:0;padding-left:5;text-align:center;font-size:12px;}\n\n      \/*加载中的动画效果*\/\n      #loading {\n          text-align: center;\n          font-size: 1rem;\n          line-height: 1.8;\n          padding: 20px 0;\n      }\n\n      .loading-line {\n          display: block;\n          margin-bottom: 5px;\n      }\n\n      .loading-text {\n          display: inline-flex;\n          align-items: center;\n          justify-content: center;\n      }\n\n      .loading-dots {\n          display: inline-flex;\n          margin-left: 6px;\n          gap: 4px;\n      }\n\n      .dot {\n          width: 5px;\n          height: 5px;\n          background: #e94560;\n          border-radius: 50%;\n          animation: bounce 1.4s infinite ease-in-out both;\n      }\n\n      .dot:nth-child(1) { animation-delay: -0.32s; }\n      .dot:nth-child(2) { animation-delay: -0.16s; }\n      .dot:nth-child(3) { animation-delay: 0s; }\n\n      @keyframes bounce {\n          0%, 80%, 100% {\n              transform: scale(0.4);\n              opacity: 0.4;\n          }\n          40% {\n              transform: scale(1);\n              opacity: 1;\n          }\n      }\n\n      \/*白色文字*\/\n      h3,h5,#loading {\n          color:#ffffff\n      }\n      \n      \/*加载完成\/失败的提示样式*\/\n      .load-complete {\n          color: #00d9ff;\n      }\n      .load-fail {\n          color: #ff4444;\n      }\n      \n      \/*下一页链接样式*\/\n      .next-page-link {\n          color: #00d9ff;\n          text-decoration: none;\n          border-bottom: 1px solid transparent;\n          transition: border-color 0.3s;\n      }\n      .next-page-link:hover {\n          border-bottom-color: #00d9ff;\n      }\n  <\/style>\n<\/head>\n\n<body>\n  <h3>{{@@.h@tag.h1@text}}<\/h3>\n  <div id=\"box\">{{@@#picg@img@html}}<\/div>\n  <div id=\"loading\">\n      <div class=\"loading-line\">\n          <span class=\"loading-text\">\n              加载中\n              <span class=\"loading-dots\">\n                  <span class=\"dot\"><\/span>\n                  <span class=\"dot\"><\/span>\n                  <span class=\"dot\"><\/span>\n              <\/span>\n          <\/span>\n      <\/div>\n      <div class=\"loading-line\" id=\"nextPageUrl\">\n          {{baseUrl.replace(\/.*\\\/\/,'')}}\n      <\/div>\n  <\/div>\n\n  <script>\n      var loads;\n      var box;\n      \/\/ 节流相关变量\n      var isLoading = false;\n      var loadCooldown = false;\n      \/\/ 基础URL,用于计算下一页链接\n      var baseUrl = \"{{baseUrl.replace('.html','_')}}\";\n      \n      $(document).ready(function () {\n          box = document.getElementById(\"box\");\n          loads = document.getElementById(\"loading\");\n          new Viewer(box, { title: false, interval: 3000 });\n          \n          var i = 2;\n          \/\/ 尝试获取总页数,如果获取失败默认给个大一点的数字或者1\n          var pageStr = \"{{@@class.pagelist.0@tag.a.-2@textNodes##\\n}}\";\n          var page = parseInt(pageStr);\n          if(isNaN(page)) page = 100; \/\/ 容错处理\n          \n          new IntersectionObserver(entries => {\n              if (entries[0].intersectionRatio <= 0) return;\n              \n              \/\/ 节流:如果正在加载或冷却中,直接返回\n              if (isLoading || loadCooldown) return;\n              \n              \/\/ 如果超过总页数\n              if (i > page) {\n                  $('#loading').html('<span class=\"load-complete\">已显示全部<\/span>');\n                  return;\n              }\n              \n              \/\/ 开始加载,设置标志\n              isLoading = true;\n              \n              fetchHtml(i, page, function(success) {\n                  \/\/ 回调:加载完成,解除标志,页码+1\n                  isLoading = false;\n                  if (success) {\n                      i += 1;\n                      \n                      \/\/ 加载完后冷却 300ms,防止立即触发下一次\n                      loadCooldown = true;\n                      setTimeout(function() {\n                          loadCooldown = false;\n                      }, 300);\n                  }\n              });\n              \n          }).observe(loads);\n      });\n\n      function fetchHtml(currentPage, totalPage, callback) {\n          var startTime = Date.now();\n          var minLoadTime = 600; \/\/ 最少显示600ms动画\n          var nurl = baseUrl + currentPage + '.html';\n          \/\/ 计算下一页链接(当前加载页+1)\n          var nextPageUrl = baseUrl + (currentPage + 1) + '.html';\n          \n          $.ajax({\n              url: nurl,\n              dataType: 'html',\n              success: function (html) {\n                  var elapsed = Date.now() - startTime;\n                  var remaining = minLoadTime - elapsed;\n                  \n                  setTimeout(function() {\n                      $('#box').append('<h5>' + currentPage + '\/' + totalPage + '<\/h5>');\n                      \n                      \/\/ 修正:使用 #picg img 选择器,与主规则一致\n                      var newImg = $(html).find('#picg img');\n                      if(newImg.length === 0) {\n                          \/\/ 备用选择器,防止ID变化\n                          newImg = $(html).find('.content img, img');\n                      }\n                      \n                      $('#box').append(newImg);\n                      box.viewer.update();\n                      \n                      \/\/ 只有最后一页才改文字,否则恢复动画结构并更新下一页链接\n                      if (currentPage >= totalPage) {\n                          $('#loading').html('<span class=\"load-complete\">已显示全部<\/span>');\n                      } else {\n                          \/\/ 短暂显示\"已加载\"然后恢复\"加载中...\"并更新下一页链接\n                          $('#loading').html('<div class=\"loading-line\"><span class=\"load-complete\">已加载<\/span><\/div>');\n                          setTimeout(function() {\n                              \/\/ 恢复动画结构,使用计算好的下一页链接\n                              $('#loading').html(`\n                                  <div class=\"loading-line\">\n                                      <span class=\"loading-text\">\n                                          加载中\n                                          <span class=\"loading-dots\">\n                                              <span class=\"dot\"><\/span>\n                                              <span class=\"dot\"><\/span>\n                                              <span class=\"dot\"><\/span>\n                                          <\/span>\n                                      <\/span>\n                                  <\/div>\n                                  <div class=\"loading-line\" id=\"nextPageUrl\">\n           ${nextPageUrl.replace(\/.*\\\/\/,'')}\n      <\/div>\n                              `);\n                          }, 400);\n                      }\n                      \n                      \/\/ 执行回调,通知加载成功\n                      callback(true);\n                      \n                  }, Math.max(0, remaining));\n              },\n              error: function (xhr) { \n                  var elapsed = Date.now() - startTime;\n                  var remaining = minLoadTime - elapsed;\n                  \n                  setTimeout(function() {\n                      $('#loading').html('<span class=\"load-fail\">加载失败<\/span>');\n                      callback(false); \/\/ 错误也要解除标志\n                  }, Math.max(0, remaining));\n              }\n          });\n      }\n  <\/script>\n<\/body>\n<\/html>",
    "ruleImage": "img@lazy-src||img@src",
    "ruleLink": "a.0@href",
    "ruleNextPage": "@js:\nlet match = baseUrl.match(\/_(\\d+)\/)\nif(match){\n\t let next = +match[1] + 1;\n\t baseUrl.replace(\/_\\d+\/, \"_\"+next)\n}",
    "ruleTitle": ".Title a@text||.title a@text",
    "showWebLog": false,
    "singleUrl": false,
    "sortUrl": "首页::\/\n萌妹萝莉::\/shey\/yingtiiurm\/11_1.html\n精品套图::\/shey\/yingtiiurm\/18_1.html\n无圣光::\/shey\/yingtiiurm\/25_1.html\n日韩套图::\/shey\/yingtiiurm\/2_1.html\n内衣丝袜::\/shey\/yingtiiurm\/9_1.html\n高清套图::\/shey\/yingtiiurm\/24_1.html\n性感美女::\/shey\/yingtiiurm\/1_1.html",
    "sourceGroup": "🔞图片",
    "sourceIcon": "http:\/\/www.sytuk.com\/favicon.ico",
    "sourceName": "摄影图库",
    "sourceUrl": "http:\/\/www.sytuk.com\/",
    "type": 0
}
广告