热点
性能工程师:五大策略优化工具链,建站效能跃升,reasoning_content:我们要求以性能工程师的口吻,写一个与“技术、科技”相关,关于[建站效能跃升:掌握优化工具链的五大核心策略]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn关键词:性能工程师、技术科技、建站效能跃升、优化工具链、五大核心策略nn可以设计的从性能工程师视角,突出工具链优化、提升建站效能例如:性能工程师秘笈:五大策略重塑建站工具链效能但需要简短或者:建站效能跃升:性能工程师的五大工具链核心策略字数可能略超nn注意标题要吸引人,符合性能工程师口吻,专业感考虑:五步优化工具链,建站效能跃升指南但需要包含“性能工程师”nn或者直接:性能工程师:五大核心策略优化建站工具链nn字数:性能工程师:五大核心策略优化建站工具链(共17字)可以nn或者更简洁:建站效能跃升:性能工程师五大工具链策略(15字)nn但原主题是“掌握优化工具链的五大核心策略”,所以最好体现“掌握”可以考虑:性能工程师:掌握五大工具链策略,建站效能跃升但字多nn权衡后,推荐:性能工程师:五大策略优化工具链,建站效能跃升(18字)或者:建站效能跃升:性能工程师五大核心工具链策略(17字)nn注意“掌握”可省略最终输出一个标题
多端适配全流程:高效建站方案技术详解,reasoning_content:我们要求以开发工程师的口吻,写一个与技术、科技相关,关于[全流程策划:多端建站高效适配方案详解]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn需要体现开发工程师视角,技术、科技感核心是全流程策划:多端建站高效适配方案详解,但标题要浓缩可能的关键词:多端适配、高效方案、全流程、开发实战、架构策略等nn想到一些标题如:多端适配全流程实战:高效建站方案解析 但字数可能超?数一下:多端适配全流程实战:高效建站方案解析,共18个字(包括冒号)可以更精炼或者从规划到部署:多端适配高效方案详解 但字数也差不多nn也可以直接:全流程策划:多端建站高效适配方案 但缺少详解或者多端建站高效适配全流程方案详解 共15字但需要体现开发工程师口吻,比如实战、架构、原理等考虑多端适配全流程:高效建站方案技术解析 19字nn为了更简短:多端适配高效方案全流程详解 11字,但不够完整或者多端建站高效适配全流程方案 13字nn参考要求是全流程策划:多端建站高效适配方案详解,原题已有冒号可以保留原题但精简?原题18字(包括冒号?全流程策划:多端建站高效适配方案详解 一共17个汉字+一个冒号=18字符)其实可以直接用这个?但要求以开发工程师的口吻,原题已经算策划类,可能不够技术感可以加技术词汇nn最好控制在30字以内,很宽松可以写:多端建站高效适配:全流程方案与实战详解 共16字或者全流程策划:多端建站高效适配方案技术深解 17字或者工程师视角:多端建站高效适配全流程方案 16字nn我倾向于:多端适配全流程:高效建站方案技术详解 16字直接输出这个
容器化与智能编排:系统无碍新范式,reasoning_content:我们要求以全栈工程师的口吻,写一个与“技术、科技”相关,关于“容器化部署与智能编排:构建系统无碍新范式”的标题直接输出一个标题,不要加说明,简短精炼,30字以内nn全栈工程师口吻:可能偏向于实战、工程化、技术深度,也可以有“我”、“我们”视角,但标题通常不需要人称也可以结合“容器化”、“智能编排”、“无碍”(无障碍?或无缝?可能是“无碍”意为无障碍、无故障?)原题“构建系统无碍新范式”可能意思是构建系统无故障/无缝的新范式所以标题要体现容器化部署+智能编排,并突出新范式nn构思:例如“容器化+智能编排:系统无碍新范式” 但字数较多或者“容器化部署与智能编排:构建无碍系统新范式” 但超过30字?数一下:容器化部署与智能编排:构建无碍系统新范式 – 共18字?中文字符:容器化部署与智能编排:构建无碍系统新范式 -> 容器化部署(4) 与(1) 智能编排(4) :(1) 构建(2) 无碍(2) 系统(2) 新范式(3) 总共4+1+4+1+2+2+2+3=19字,在30以内但原题要求“简短精炼”,可以更精炼例如“容器+智能编排:系统无碍新范式” 13字或者“容器化部署+智能编排:无碍系统新范式” 15字nn全栈工程师口吻:可能喜欢用“实战”、“指南”、“之道”等,但标题直接给出即可我选择“容器化部署+智能编排:系统无碍新范式” 共15字,看是否更精炼?或者去掉“部署”:“容器化+智能编排:系统无碍新范式” 13字但“容器化”本身包含部署概念?可能可以或者“容器化与智能编排:系统无碍新范式” 14字最终决定使用“容器化与智能编排:系统无碍新范式”注意不要加引号,直接输出
UI测试工程师的Windows运行库配置与开发环境全攻略,reasoning_content:我们要求以UI测试工程师的口吻写一个与技术、科技相关,关于[Windows运行库配置与管理:轻松搭建开发环境全攻略]的标题需要直接输出标题,不要加说明字数30字以内,简短精炼nn思路:UI测试工程师口吻,可能注重稳定性、兼容性、环境配置等可以结合运行库、配置、开发环境、攻略等词例如:UI测试工程师必看:Windows运行库配置一步到位 但需要更精简或者Windows运行库配置:UI测试环境搭建指南注意不要超过30字nn尝试:UI测试工程师:Windows运行库配置与开发环境搭建全攻略 字数?数一下:UI测试工程师:Windows运行库配置与开发环境搭建全攻略 – 共22个汉字+标点?实际汉字:UI(2字母算2个? 通常中文字数按汉字算,但UI是英文字母,题目说字数控制在30字以内,一般指汉字或字符?安全起见,用中文字符可以写成UI测试工程师即4个汉字+2个字母?严格来说,可以把UI视为两个字符为了简洁,可以写UI测试工程师共5个字符(U、I、测、试、工、程、师?不对,U,I,测,试,工,程,师 7个字符但通常算字数时英文字母算半个或一个?稳妥起见,用全中文表达,比如界面测试工程师但原要求是UI测试工程师,最好保留UInn可以写:【UI测试工程师】Windows运行库配置与环境搭建攻略 – 数一下:【UI测试工程师】Windows运行库配置与环境搭建攻略 – 汉字+符号:共? 【(1)、U(1)、I(1)、(1)、测(1)、试(1)、工(1)、程(1)、师(1)、】(1)、W(1)、i(1)、n(1)、d(1)、o(1)、w(1)、s(1)、运(1)、行(1)、库(1)、配(1)、置(1)、与(1)、环(1)、境(1)、搭(1)、建(1)、攻(1)、略(1) – 共29个字符?还有空格?实际有29个字符,但包含英文字母和符号可能超30?再算:符号算一个,英文字母每个算一个,总共:括号两个, UI两个, 汉字:测试工程师(4) Windows(7) 运行库配置与环境搭建攻略(13) 合计2+2+4+7+13=28加上中间可能没有空格28个,可以但【】可能不必要更简洁:nnUI测试工程师:Windows运行库配置与开发环境搭建 字数:UI测试工程师(7字符) :(1) Windows(7) 运行库配置与开发环境搭建(13) 合计7+1+7+13=28,可以但缺少全攻略意味或者轻松搭建nn另一个:Windows运行库配置:UI测试工程师开发环境搭建指南 字数:Windows运行库配置(11) :(1) UI测试工程师(7) 开发环境搭建指南(9) 合计11+1+7+9=28也不错nn最终选择简洁且有全攻略的考虑:UI测试工程师的Windows运行库配置与开发环境全攻略 字数:UI测试工程师的(8) Windows运行库配置与开发环境全攻略(16) 合计24字OKnn注意:要直接输出,不要加说明所以输出这个
17 9 月 2026, 周四

phpcms-v9中图集详情页幻灯片特效的js代码分析

一.phpcms-v9中图集详情页可以改造成如下这种风格:
 
 
 
二、所用到的js文件有statics/js/jquey.sgallery.js文件和statics/js/show_picture.js文件
 
1.statics/js/jquey.sgallery.js文件分析:
 
//图集详情页使用       参数1:scaling-是否自动缩放图像                参数2:width-自定义宽度              参数3:height-自定义高度             参数4:loadpic-要加载的原始图片   
jQuery.fn.LoadImage=function(scaling,width,height,loadpic,call_back){   
    //加载中…图片   
    if(loadpic==null)loadpic="../images/msg_img/loading.gif";   
   return this.each(function(){   
       //t-当前要加载图片的<img src="">对象   
       var t=$(this);   
       //当前要加载图片的<img>标签的src属性值,即:原图的src属性值   
       var src=$(this).attr("src");   
       //创建一个图像对象   
       var img=new Image();   
       //将原图的src属性值赋值给新创建的img对象   
       img.src=src;   
       //自动缩放图片   
       var autoScaling=function(){   
        //scaling-是否自动缩放图像   
        if(scaling){   
             //首先要保证要加载的图像的宽度和高度都大于零   
             if(img.width>0 && img.height>0){    
                   //缩放比率:  要加载图片的宽度/要加载图片的高度            >    自定义宽度 /自定义高度   
                   if(img.width/img.height>=width/height){    
                           //要加载图片的宽度       >  自定义宽度   
                           if(img.width>width){    
                               //将自定义宽度作为要加载图片的宽度,也就是要加载图片的宽度被缩小了   
                               t.width(width);   
                               //要加载图片的高度也做相应的处理   
                               t.height((img.height*width)/img.width);    
                           }else{//要加载图片的宽度     <     自定义宽度  的情况    
                               t.width(img.width);//将要加载图片的宽度设置为自定义的宽度    
                               t.height(img.height);//将要加载图片的高度设置为自定义的高度   
                           }    
                   } else{    
                           if(img.height>height){    
                               t.height(height);    
                               t.width((img.width*height)/img.height);    
                           }else{    
                               t.width(img.width);    
                               t.height(img.height);    
                           }    
                   }    
               }   
        }   
        //参数5:call_back-回调函数,在这里是show_picture.js中的load_images函数   
        //等价于load_images(t.height());   
        //t.height()-图片被处理后的最终高度   
        call_back(t.height());   
   }   
2.statics/js/show_picture.js文件分析:
 
$(document).ready(function(){   
    //获取锚点即当前图片id   
    //如:会获取到index.php?m=content&c=index&a=show&catid=71&id=2#3中的#3   
    var picid = location.hash;   
    //将#截取掉,得到当前切换到的图片id:3   
    picid = picid.substring(1);   
    if(isNaN(picid) || picid=='' || picid==null) {   
        //如果图片id不存在,则设置为第一张图片的id   
        picid = 1;   
    }   
    picid = parseInt(picid);   
    //图集图片总数   
    var totalnum = $("#pictureurls li").length;   
    //如果当前图片id大于图片数,显示第一张图片   
    if(picid > totalnum || picid < 1) {   
        picid = 1;   
        next_picid = 1; //下一张图片id   
    } else {   
        //否则显示下一张图片id   
        next_picid = picid + 1;   
    }   
    //要加载的原图的url地址:通过dom来获取模板中当前标签的rel属性的值   
    url = $("#pictureurls li:nth-child("+picid+") img").attr("rel");   
    //图集详情页幻灯效果中间的大图,也即:要加载的图片      ,此标签是通过js动态创建的,模板文件中原本不存在   
    $("#big-pic").html("<img src='"+url+"' onload='loadpic("+next_picid+")' onclick='showpic(/"next/")' style='cursor:pointer;'>");   
    //自定义要加载图片的宽度为800、高度为650   
    $('#big-pic img').LoadImage(true, 800, 650,$("#load_pic").attr('rel'),load_images);   
    //如:1/7 – 代表这个图集中有7张图片,当前显示的是第一张图片   
    $("#picnum").html("<span>"+picid+"</span> / "+totalnum);   
    //当前图片的描述信息   
    $("#picinfo").html($("#pictureurls li:nth-child("+picid+") img").attr("alt"));   
    //大图中间的提示信息   
    $("#futitle").fadeIn(3000,function(){   
        $("#futitle").fadeOut(4000);   
    });   
    //切换到对应的图片   
    $("#pictureurls li").click(function(){   
        i = $(this).index() + 1;   
        showpic(i);//显示图片   
    });   
   
    //加载时图片滚动到中间:获取所有<li>元素的总宽度   
    var _w = $('.cont li').width()*$('.cont li').length;   
    if(picid>2) {   
        //移动步长   
        movestep = picid – 3;   
    } else {   
        movestep = 0;   
    }   
    var _ws = $('.cont li').width()*movestep;   
    //通过css样式来控制左移位置   
    $(".cont ul").css({"left":-+_ws});   
   
    //点击图片滚动   
    $('.cont ul').width(_w+200);   
    $(".cont li").click( function () {   
        if($(this).index()>2){   
            movestep = $(this).index() – 2;   
            $(".cont ul").css({"left":-+$('.cont li').width()*movestep});   
        }   
    });   
    //当前缩略图添加样式   
    $("#pictureurls li:nth-child("+picid+")").addClass("np");   
   
});   
   
   
//通过键盘的左右键控制图集详情页的幻灯片切换   
$(document).keyup(function(e) {        
    var currKey=0,e=e||event;   
    currKey=e.keyCode||e.which||e.charCode;   
    switch(currKey) {        
        case 37: // left:切换到上一张图片   
            showpic('pre');   
            break;   
        case 39: // up:切换到下一张图片   
            showpic('next');   
            break;   
        case 13: // enter:切换图集   
            var nextpicurl = $('#next_thumb').attr('href');//获取下一个图集的url地址   
            if(nextpicurl !== '' || nextpicurl !== 'null') {   
                window.location=nextpicurl;//直接跳转到下一图集   
            }   
            break;   
    }      
});   
   
//图集详情页会使用到此函数:设置要加载图片的高度   
function load_images(height) {   
    var _h = $("#big-pic img").css("height");   
    $(".tjxx_img").height(_h);   
}   
   
   
//type : next-下一张      pre-上一张     replay:是否重播   
function showpic(type, replay) {   
    //隐藏重复播放div   
    //$("#endSelect").hide();   
   
    //图集图片总数   
    var totalnum = $("#pictureurls li").length;   
    if(type=='next' || type=='pre') {   
        //获取锚点即当前图片id   
        //如:会获取到index.php?m=content&c=index&a=show&catid=71&id=2#3中的#3   
        var picid = location.hash;//#3   
        picid = picid.substring(1);//3   
        if(isNaN(picid) || picid=='' || picid==null) {   
            picid = 1;   
        }   
        //当前图片id   
        picid = parseInt(picid);   
        //下一张   
        if(type=='next') {   
            i = picid + 1;//当前图片id加1   
            //如果是最后一张图片,指针指向第一张   
            if(i > totalnum) {   
                //如果当前是最后一张图片,提示最后一页   
                var next_url = $("#next_thumb").attr('href');   
                if(next_url!=''){   
                    window.location.href = next_url;//提示最后一张   
                    return false;   
                }   
                i=1;//如果是最后一张图片,指针指向第一张   
                next_picid=1;//下一张图片id重置为1   
                //重新播放   
                if(replay!=1) {   
                    return false;   
                }   
            } else {   
                //下一张图片id   
                next_picid = parseInt(i) + 1;   
            }   
        } else if (type=='pre') {   
            i = picid – 1;//当前图片id减1   
            //如果是第一张图片,指针指向最后一张   
            if(i < 1) {   
                i=totalnum;//如果是第一张图片,指针指向最后一张   
                next_picid = totalnum;   
            } else {   
                next_picid = parseInt(i) – 1;   
            }   
        }   
           
        //当前选中的图片的url   
        url = $("#pictureurls li:nth-child("+i+") img").attr("rel");   
        //图集详情页幻灯效果中间的大图,也即:要加载的图片      ,此标签是通过js动态创建的,模板文件中原本不存在   
        $("#big-pic").html("<img src='"+url+"' onload='loadpic("+next_picid+")' onclick='showpic(/"next/")' style='cursor:pointer;'>");   
        //自定义要加载图片的宽度为800、高度为650   
        $('#big-pic img').LoadImage(true, 800, 650,$("#load_pic").attr('rel'),load_images);   
        $("#picnum").html("<span>"+i+"</span> / "+totalnum);   
        $("#picinfo").html($("#pictureurls li:nth-child("+i+") img").attr("alt"));   
        //更新锚点   
        location.hash = i;   
        type = i;   
   
        //点击图片滚动   
        var _w = $('.cont li').width()*$('.cont li').length+200;   
        if(i>2) {   
            movestep = i – 3;   
        } else {   
            movestep = 0;   
        }   
        var _ws = $('.cont li').width()*movestep;   
        $(".cont ul").css({"left":-+_ws});   
   
    } else if(type=='big') {//查看原图   
        //获取锚点即当前图片id   
        var picid = location.hash;   
        picid = picid.substring(1);   
        if(isNaN(picid) || picid=='' || picid==null) {   
            picid = 1;   
        }   
        picid = parseInt(picid);   
   
        url = $("#pictureurls li:nth-child("+picid+") img").attr("rel");   
        window.open(url);   
    } else {//type:数字类型   
        url = $("#pictureurls li:nth-child("+type+") img").attr("rel");   
        $("#big-pic").html("<img src='"+url+"' onclick='showpic(/"next/")' style='cursor:pointer;'>");   
        //自定义要加载图片的宽度为800、高度为650   
        $('#big-pic img').LoadImage(true, 800, 650,$("#load_pic").attr('rel'),load_images);   
        //如:1/7 – 代表这个图集中有7张图片,当前显示的是第一张图片   
        $("#picnum").html("<span>"+type+"</span> / "+totalnum);   
        //当前图片的描述信息   
        $("#picinfo").html($("#pictureurls li:nth-child("+type+") img").attr("alt"));   
        location.hash = type;   
    }   
   
    $("#pictureurls li").each(function(i){   
        j = i+1;   
        if(j==type) {//当前选中的图片添加样式   
            $("#pictureurls li:nth-child("+j+")").addClass("np");   
        } else {   
            $("#pictureurls li:nth-child("+j+")").removeClass();   
        }  //Cuoxin.com
    });   
}   
   
   
//预加载图片   
function loadpic(id) {   
    url = $("#pictureurls li:nth-child("+id+") img").attr("rel");   
    $("#load_pic").html("<img src='"+url+"'>");   
}
 

dawei

您错过了

性能工程师:五大策略优化工具链,建站效能跃升,reasoning_content:我们要求以性能工程师的口吻,写一个与“技术、科技”相关,关于[建站效能跃升:掌握优化工具链的五大核心策略]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn关键词:性能工程师、技术科技、建站效能跃升、优化工具链、五大核心策略nn可以设计的从性能工程师视角,突出工具链优化、提升建站效能例如:性能工程师秘笈:五大策略重塑建站工具链效能但需要简短或者:建站效能跃升:性能工程师的五大工具链核心策略字数可能略超nn注意标题要吸引人,符合性能工程师口吻,专业感考虑:五步优化工具链,建站效能跃升指南但需要包含“性能工程师”nn或者直接:性能工程师:五大核心策略优化建站工具链nn字数:性能工程师:五大核心策略优化建站工具链(共17字)可以nn或者更简洁:建站效能跃升:性能工程师五大工具链策略(15字)nn但原主题是“掌握优化工具链的五大核心策略”,所以最好体现“掌握”可以考虑:性能工程师:掌握五大工具链策略,建站效能跃升但字多nn权衡后,推荐:性能工程师:五大策略优化工具链,建站效能跃升(18字)或者:建站效能跃升:性能工程师五大核心工具链策略(17字)nn注意“掌握”可省略最终输出一个标题

多端适配全流程:高效建站方案技术详解,reasoning_content:我们要求以开发工程师的口吻,写一个与技术、科技相关,关于[全流程策划:多端建站高效适配方案详解]的标题直接输出一个标题,不要加说明提示等信息简短精炼,字数控制在30字以内nn需要体现开发工程师视角,技术、科技感核心是全流程策划:多端建站高效适配方案详解,但标题要浓缩可能的关键词:多端适配、高效方案、全流程、开发实战、架构策略等nn想到一些标题如:多端适配全流程实战:高效建站方案解析 但字数可能超?数一下:多端适配全流程实战:高效建站方案解析,共18个字(包括冒号)可以更精炼或者从规划到部署:多端适配高效方案详解 但字数也差不多nn也可以直接:全流程策划:多端建站高效适配方案 但缺少详解或者多端建站高效适配全流程方案详解 共15字但需要体现开发工程师口吻,比如实战、架构、原理等考虑多端适配全流程:高效建站方案技术解析 19字nn为了更简短:多端适配高效方案全流程详解 11字,但不够完整或者多端建站高效适配全流程方案 13字nn参考要求是全流程策划:多端建站高效适配方案详解,原题已有冒号可以保留原题但精简?原题18字(包括冒号?全流程策划:多端建站高效适配方案详解 一共17个汉字+一个冒号=18字符)其实可以直接用这个?但要求以开发工程师的口吻,原题已经算策划类,可能不够技术感可以加技术词汇nn最好控制在30字以内,很宽松可以写:多端建站高效适配:全流程方案与实战详解 共16字或者全流程策划:多端建站高效适配方案技术深解 17字或者工程师视角:多端建站高效适配全流程方案 16字nn我倾向于:多端适配全流程:高效建站方案技术详解 16字直接输出这个