发一个自己用JS写的实用看图工具实现代码


Posted in Javascript onJuly 26, 2008

  因为某些网站把内容图片以每页显示一幅的形式呈现,而每页都有大量没用的垃圾信息(广告、新闻和无关图片),非常影响看图效率。所以写了这个,只要知道第一幅图片的URL,填在本网页里,设置一下起始和结束编号,就可以显示带有数字编号的图片了,同时还有一些常用到的贴心功能。当然,对于某些网站存放的无序图片就无能为力了。

介绍完了,下面是代码内容,希望能对JS新手们有点帮助吧(请自行把下面代码里所有的“'”替换为单引号。我对这里这个格式实在没辙了):

<SCRIPT> 
//CTRL+鼠标滚轮放大或缩小图片: 
function imgzoom(o) { 
    if(event.ctrlKey) { 
        var zoom = parseInt(o.style.zoom, 10) || 100; 
        zoom -= event.wheelDelta / 12; 
        if(zoom > 0) { 
            o.style.zoom = zoom + '%'; 
        } 
        return false; 
    } else { 
        return true; 
    } 
} 
//接收热键 
document.onkeydown=mykey; 
var IsShow=false; 
function  mykey() 
{ 
    var  key=window.event.keyCode; 
//    alert(key); 
    if (key==192){ 
        if (IsShow) showIt(); 
            else hideIt(); 
//        IsShow=!IsShow; 
    }    //45=Insert键,16=Shift,17=Ctrl,18=Alt,192=` 
    if (key==13 ) catchIt();//Enter,to display 
    if (key==186)  document.getElementById('add0').checked=!document.getElementById('add0').checked; 
} function hideIt() 
{    IsShow=true; 
    //隐藏 
//    document.getElementById('showHere').style.visibility='hidden';    //保留占用的显示面积 
    document.getElementById('showHere').style.display='none';        //回收占用的显示面积 
//    document.getElementById('imgUrlBackup').innerText=document.getElementById('thePath').value; 
//    document.getElementById('thePath').value=''; 
} 
function showIt() 
{    IsShow=false; 
    //显示 
//    document.getElementById('showHere').style.visibility="visible"; 
    document.getElementById('showHere').style.display=""; 
//    document.getElementById('thePath').value=document.getElementById('imgUrlBackup').innerText; 
} 
function catchIt() 
{ 
    ////document.write('<p><table>'); 
    showIt() 
    var sn=Number(document.getElementById('startNum').value); 
    var en=Number(document.getElementById('endNum').value); 
    var str=document.getElementById('thePath').value; 
    var IsAdd0=document.getElementById('add0').checked; 
    var lastPos; 
    var Discript='<center>按1旁边的“`”键可隐藏/显示图片区域。点击图片可在新窗口查看原图。CTRL+鼠标滚轮可放大或缩小图片。</center>'; 
    var showSth='<table>'; 
    var fn=''; 
    fn=''; 
    if (IsAdd0) 
    { 
        lastPos=str.lastIndexOf('#'); 
         str=str.replace(new RegExp('#','ig'),'0'); 
        for(var n=sn;n<=en;n++) 
        { 
            fn=str.substring(0,lastPos-String(n).length+1) + n + str.substring(lastPos+1); 
            showSth=showSth+GetImgSrc(fn); 
        } 
    } 
    else 
    { 
        for(var n=sn;n<=en;n++) 
        { 
            fn=str.replace('#',n); 
            showSth=showSth+GetImgSrc(fn); 
        } 
    } 
    showSth=showSth+'</table>'; 
//    alert(showSth); 
    document.getElementById('showHere').innerHTML=Discript+showSth+Discript; 
    //    document.refresh(); 
    IsShow=false; 
} 
function GetImgSrc(ImgUrl) 
{    //让图片载入后自动调整显示尺寸以适应屏幕,并提取文件体积信息附加到提示信息上 
    //在鼠标经过时,设置鼠标为手形状 
    //在鼠标点击时,在新窗口打开图片 
    //鼠标滚轮滚动时,触发缩放图片函数 
    //设置图片的提示信息 
    return ' <img onerror="javascript:this.style.display=\'none\';"  src="' + ImgUrl  + '" onload="if(this.width >screen.width*0.7) {this.resized=true; this.width=screen.width*0.7;DispImgInfo(this);}" onmouseover="if(this.resized) this.style.cursor='hand';" onclick="window.open(this.src);" onmousewheel="return imgzoom(this);" alt="URL:' + ImgUrl + ' 点击=在新窗口查看,CTRL+鼠标滚轮=缩放图片" >'; 
} 
//把所有图片按thesize文本框指定比例进行缩放 
function ImgZoom(Operation) { 
    var ScaleTo=document.getElementById('thesize').value/100; 
    if (Operation=="toBig") {ScaleTo=1+ScaleTo;} 
    for(var i=0;i<document.images.length;i++) 
    {    document.images[i].width=document.images[i].width*ScaleTo; 
        //不用改变高度,会自动跟随长度变化而等比变化. 
    } 
} 

//  宽:'+this.width+',高:'+this.height+','+getImgsize(this)+' 
function DispImgInfo(img) { 
    if (img.src!=null && img.src!="") 
            img.alt=img.alt + " 宽:"+img.width+",高:"+img.height+",大小:"+getImgsize(img); 
} 
function discAllimages() { 
    //getAllimages 
    for (var i=0; i<document.images.length; i++) 
    {    var img=document.images[i]; 
        if (img.src!=null && img.src!="") 
            img.alt=img.alt + " 宽:"+img.width+",高:"+img.height+",大小:"+getImgsize(img); 
    } 
} 
function getImgsize(x) { 
    var picSize=x.fileSize; 
    if (picSize>1000) picSize=Math.round(picSize/1024*100)/100+'KB'; 
    else if (picSize > 0) picSize=picSize+'字节'; 
    else picSize='未知'; 
    return picSize; 
} 
</SCRIPT> 

作者:ZhaoLiang -- 碧海情天、淹没天空的海  邮箱:thedoc01@163.com   制作时间:2006年8月 
<BR>功能:批量显示带数字编号的本地或网络图片。如 C:A##.gif 或 file:///C:/A##.gif 或 http://www.cctv.com/A3#.jpg 
<BR>说明:如图片名称是A02而非A2时,可用##指定编号的固定长度并选择“固位补零”,则不足位的会自动用0补齐) 
<BR>热键:`(~)键=显示开/关。;键=开关固位补零。图片上CTRL+鼠标滚轮=缩放图片。点击图片=在新窗口打开。HOME=篇幅较长时可返回开头。 
<HR> 
路径:<INPUT id='thePath' style="apos: " type='text'></INPUT> 
起始编号:<INPUT id='startNum' style="apos: " type='text'></INPUT> 
结束编号:<INPUT id='endNum' style="apos: " type='text'></INPUT><BR> 
<INPUT id='add0' type='checkbox'></INPUT>固位补零 
 <INPUT onclick=javascript:catchIt() type='button' value='显示之'></INPUT> 
<!--  <input type='button' id='see' onclick="javascript:showIt()" value='再显示'></input> 
--> 
<INPUT onclick=javascript:ImgZoom('toSmall') type='button' value='缩小'></INPUT> 
<INPUT onclick=javascript:ImgZoom('toBig') type='button' value='放大'></INPUT> 
缩放比例(百分之):<INPUT id='thesize' style="apos: " type='text' value=50>(回车即显示图片) 
<!--  <input type='button' onclick="javascript:discAllimages()" value="显示图片信息"> 
--> 
<HR> 
<DIV id='showHere'></DIV> 
<DIV id='imgUrlBackup' style="DISPLAY: none; apos: "></DIV> 
<SCRIPT> 
    document.getElementById('thePath').focus(); 
</SCRIPT> 
<!-- 
作者:ZhaoLiang -- 碧海情天、淹没天空的海  邮箱:thedoc01@163.com 
看显示区代码javascript:alert(document.getElementById('showHere').innerHTML); 
-->

平时也不注意整理,所以这个文件改过几个不同版本,发完了我才想起,曾经把hideIt()和showit()合并成一个函数(根据参数进行处理就行了),还有其它一些细节。因为对这里的编辑还不太熟,就不再改了,大家有兴趣自己试试吧。如果有什么建议能提供的话就更好了。

(更新:修改了一下,对于不存在的图片,自动隐藏,不占据显示空间——通过img的onerror事件进行处理。 
另外要说的,这里现在这个代码编辑器,很容易导致编辑后的内容大乱套。我花了很长时间来改正错误的替换代码,感觉比我写这个脚本工具都累。而且,里面SPAN的生成,完全没有优化,不必要的重复数量简直惊人,希望OpenSoft开发组尽快完善。)

Javascript 相关文章推荐
跟随鼠标旋转的文字
Nov 30 Javascript
flash 得到自身url参数的代码
Nov 15 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
省市选择的简单实现(基于zepto.js)
Jun 21 Javascript
详解jQuery的Cookie插件
Nov 23 Javascript
详解webpack+express多页站点开发
Dec 22 Javascript
Vue2.0结合webuploader实现文件分片上传功能
Mar 09 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
Jul 26 Javascript
代码分析vue中如何配置less
Sep 28 Javascript
js form表单input框限制20个字符,10个汉字代码实例
Apr 12 Javascript
对JavaScript的eval()中使用函数的进一步讨论
Jul 26 #Javascript
js树形控件脚本代码
Jul 24 #Javascript
js类中的公有变量和私有变量
Jul 24 #Javascript
javascript IE中的DOM ready应用技巧
Jul 23 #Javascript
css把超出的部分显示为省略号的方法兼容火狐
Jul 23 #Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
Jul 23 #Javascript
用js遍历 table的脚本
Jul 23 #Javascript
You might like
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
Python OpenCV获取视频的方法
2018/02/28 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
python使用pdfminer解析pdf文件的方法示例
2018/12/20 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
pandas统计重复值次数的方法实现
2021/02/20 Python
入党积极分子介绍信
2014/01/17 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
护理心得体会范文
2016/01/22 职场文书
七个Python必备的GUI库
2021/04/27 Python
Python基础之操作MySQL数据库
2021/05/06 Python