kisshang1993 / NGA-BBS-Script

NGA论坛增强脚本,给你完全不一样的浏览体验
MIT License
331 stars 31 forks source link

图片功能增强相关问题 #26

Closed sunfkny closed 3 years ago

sunfkny commented 3 years ago

点开图片,翻到最后一张,会有一个src="about:blank" 的图片错误的显示 另外建议改用 https://github.com/fengyuanchen/viewerjs 实现图片增强 ,这样就有例如Esc退出,翻转等功能

随便用viewerjs实现了一下主贴的图片显示,渣代码献丑了

function addcss(href) {
    var head = document.querySelector('head');
    var link = document.createElement('link');
    link.href = href+'';
    link.rel = 'stylesheet';
    link.type = 'text/css';
    head.appendChild(link)
    console.log('外部css注入成功' , link.href);
}
function addjs(src) {
    var head = document.querySelector('head');
    var script = document.createElement('script');
    script.src = src+'';
    script.type = 'text/javascript';
    head.appendChild(script);
    console.log('外部js注入成功', script.src);
}
addjs("https://cdnjs.cloudflare.com/ajax/libs/viewerjs/1.9.0/viewer.min.js");
addcss("https://cdnjs.cloudflare.com/ajax/libs/viewerjs/1.9.0/viewer.min.css");

function getPostcontent0Gallery() {
    var p0 = document.getElementById("postcontent0"); // 主贴div
    for (let i of p0.childNodes) {
        if (i.nodeName == "IMG" && i.style.display == "none") {
            i.remove(); // 移除有问题的图片
        }
        if (i.nodeName == "IMG" && i.style.display != "none" && i.getAttribute("data-srclazy")) {
            i.src = i.getAttribute("data-srclazy"); // 适配懒加载
        }
    }
    return p0;
}

// 传入div,内含要显示的img
var gallery = new Viewer(getPostcontent0Gallery());
// 点击图片即可显示,或者 gallery.show() 也行
kisshang1993 commented 3 years ago

感谢反馈 此问题已经在最近一个commit中修复,重新安装脚本即可

另外关于图片大图实现的问题,之前也是有想过直接使用第三方的图片库,但由于图片这部分逻辑涉及到诸多功能(图片隐藏,图片缩放,图片原图显示等等),所以不太好嵌入第三方的图片库,后续我再看看如何重构下来优化这个图片显示的问题