js控制html页面显示图片方式,只需要引入“jquery-1.11.2.min.js”

js:

/*
引用
<script src="jquery-1.11.2.min.js" type="text/javascript"></script>
<script src="showImage.js" type="text/javascript"></script>
<script>
$(function () {
showImage.init({Div:"div.showImage"});
}); </script>
外层div建议设置宽高,div默认宽度为父级宽度,但高度未知
<div class="showImage" style="width:350px;height:300px;background-color:Black;">
<img style="" src="http://photocdn.sohu.com/20170328/Img485277054.jpg"></img>
</div>
*/
var showImage = {
item: {
Div: "div.showImage", //获取外层div的选择器
Img: "img:eq(0)", //从div子元素 获取图片的选择器
isCenter: true, //是否居中
showBeyond: false, //是否显示超出部分
fixedWH: "delfault", /*固定宽或高:
"delfault"大图图片小边,小图固定图片大边,宽图高图不变大小
"abs"取宽高差值最小固定。
"width"固定宽。
"height" 固定高。*/
full: false//小图放大充满 外层div },
init: function (item) {
showImage.item = $.extend({}, showImage.item, item); var d = $(showImage.item.Div);
if (d.length > 0) { for (var i = 0; i < d.length; i++) {
showImage.showImage(d[i]);
}
} else {
showImage.showImage(d[0]);
}
},
showImage: function (obj, width, height) {
if (obj == undefined) {
return;
}
//obj:外层div对象
obj = $(obj);
//超出外层div部分不显示
if (!showImage.item.showBeyond) {
obj.css("overflow", "hidden");
}
//清除外层div样式,对图片定位样式
obj.css("padding", "0px 0px 0px 0px"); //获取div大小
if (!width) {
width = obj.get(0).offsetWidth;
}
if (!height) {
height = obj.get(0).offsetHeight;
}
if (height <= 0 && width <= 0) {
return;
}
//获取图片
var img = obj.children(showImage.item.Img).get(0); //设置图片大小,位置 //图片加载完成
if (img.complete) {
showImage.LocationImg(img, width, height);
} else {
//图片未加载
img.onload = function () { showImage.LocationImg(img, width, height); };
} },
LocationImg: function (img, width, height) {
img = $(img);
var img2 = new Image();
img2.src = img.get(0).src; //设置图片大小
//获取图片宽高
var imgheight = img2.height;
var imgwidth = img2.width; // var imgheight = img.get(0).offsetHeight;
// var imgwidth = img.get(0).offsetWidth;
// var imgwidth = img.get(0).naturalWidth;
// var imgheight = img.get(0).naturalHeight;
if (!img.complete) {
// 图片标签尚未加载
setTimeout(function () {
//设置图片显示
showImage.LocationImg(img, width, height);
}, 1000);
return;
}
//height 外层div高, width 外层div宽
width = parseFloat(width);
height = parseFloat(height);
imgwidth = parseFloat(imgwidth);
imgheight = parseFloat(imgheight); if (width == 0) {
width = imgwidth;
}
if (height == 0) {
height = imgheight;
}
//固定宽或高,另一边等比缩放
if (showImage.item.fixedWH == "width") {
//等比缩放高
imgheight = imgheight * (width / imgwidth);
//固定宽
imgwidth = width;
} else if (showImage.item.fixedWH == "height") {
//等比缩放宽
imgwidth = imgwidth * (height / imgheight);
//固定高
imgheight = height;
} else if (showImage.item.fixedWH == "delfault") {
//大图图片小边,小图固定图片大边,宽图高图不变大小
if (imgheight >= height && imgwidth >= width) {
//大图充满
if (imgheight * (width / imgwidth) >= height) {
//等比缩放高
imgheight = imgheight * (width / imgwidth);
//固定宽
imgwidth = width;
} else {
//等比缩放宽
imgwidth = imgwidth * (height / imgheight);
//固定高
imgheight = height;
}
} else if (imgheight < height && imgwidth < width) {
//小图
if (imgwidth < imgheight) {
//等比缩放宽
imgwidth = imgwidth * (height / imgheight);
//固定高
imgheight = height;
} else if (imgwidth == imgheight) {
if (height > width) {
//等比缩放高
imgheight = imgheight * (width / imgwidth);
//固定宽
imgwidth = width;
} else {
//等比缩放宽
imgwidth = imgwidth * (height / imgheight);
//固定高
imgheight = height;
}
} else {
//等比缩放高
imgheight = imgheight * (width / imgwidth);
//固定宽
imgwidth = width;
}
} else {
//高图或宽图
//不变大小,留白
}
} else if (showImage.item.fixedWH == "abs") {
//宽差值,高差值比较
if (Math.abs(height - imgheight) > Math.abs(width - imgwidth)) {
//等比缩放高
imgheight = imgheight * (width / imgwidth);
//固定宽
imgwidth = width;
} else {
//等比缩放宽
imgwidth = imgwidth * (height / imgheight);
//固定高
imgheight = height;
}
}
//充满
if (showImage.item.full) {
if (imgheight == height && imgwidth < width) {
//使宽充满
imgwidth = width * (width / imgwidth);
imgheight = width; } else if (imgheight < height && imgwidth == width) {
//使高充满
imgwidth = imgwidth * (height / imgheight);
imgheight = height; } }
//设置图片宽高
img.css("height", (100 * imgheight / height) + "%");
img.css("width", (100 * imgwidth / width) + "%"); //图片定位样式
img.css("float", "left");
img.css("position", "relative");
img.css("bottom", "0px");
img.css("right", "0px");
img.css("margin", "0px 0px 0px 0px");
img.css("padding", "0px 0px 0px 0px"); if (showImage.item.isCenter) {
//定位居中
var toppx = (((100 * (Math.abs(height - imgheight)) / height)) / 2).toFixed(2) + "%";
var leftpx = (((100 * (Math.abs(imgwidth - width)) / width)) / 2).toFixed(2) + "%"; if (imgwidth > width) {
leftpx = "-" + leftpx;
}
if (imgheight > height) {
toppx = "-" + toppx;
}
img.css("left", leftpx);
img.css("top", toppx);
} } //设置图片大小, 位置
};

html:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head >
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jquery-1.11.2.min.js" type="text/javascript"></script>
<script src="showImage.js" type="text/javascript"></script>
<script>
$(function () {
showImage.init({ Div: "div.showImage" });
});
</script> </head>
<body>
<form id="form1" runat="server" style="padding-left:100px;">
长图
<br />
<div class="showImage" style="width:100px;height:100px;background-color:Black;">
<img style="" src="https://test2015data.oss-cn-hangzhou.aliyuncs.com/image-hroot/year20173/image-201730/news/file_170328203053104559.png"></img>
</div>
<br />
<br />
<br />
<br />
<br />
<br />
长图原图
<br />
<img style="" src="https://test2015data.oss-cn-hangzhou.aliyuncs.com/image-hroot/year20173/image-201730/news/file_170328203053104559.png"></img>
<br />
<br />
高图
<br />
<div class="showImage" style="width:350px;height:300px; background-color:Black;">
<img style="position:inherit;" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1490965812249&di=7ec87be2d7b63733a7bba492e952202e&imgtype=0&src=http%3A%2F%2Fwww.shuhua365.com%2Fhualang%2Fuploadfile%2F2010312112959216.jpg"></img> </div>
<br />
高图原图
<br />
<img style="" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1490965812249&di=7ec87be2d7b63733a7bba492e952202e&imgtype=0&src=http%3A%2F%2Fwww.shuhua365.com%2Fhualang%2Fuploadfile%2F2010312112959216.jpg"></img> </form>
</body>
<form id="form1" style="padding-left:100px;">
大图
<br />
<div class="showImage" style="width:350px;height:300px;background-color:Black;">
<img style="width:200px;height:200px;" src="http://photocdn.sohu.com/20170328/Img485277054.jpg"></img>
</div>
<br />
<br />
<br />
<br />
<br />
<br />
大图原图
<br />
<img style="" src="http://photocdn.sohu.com/20170328/Img485277054.jpg"></img>
<br />
<br />
小图
<br />
<div class="showImage" style="width:350px;height:300px; background-color:Black;">
<img style="position:inherit;" src="https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=512897042,748871735&fm=80&w=179&h=119&img.JPEG"></img> </div>
<br />
小图原图
<br />
<img style="" src="https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=512897042,748871735&fm=80&w=179&h=119&img.JPEG"></img> </form>
</body>
</html>

【js】【图片显示】js控制html页面显示图片方式的更多相关文章

  1. 原生JS的移入溢出控制div的显示与隐藏

    原生JS的移入溢出控制div的显示与隐藏的写法 上面的写法火狐存在兼容性

  2. uploadify实现七牛云存储 显示上传进度+页面显示

    准备: uploadify下载地址: http://www.uploadify.com/download/ 七牛 php-sdk开发指南: http://developer.qiniu.com/doc ...

  3. 无阻塞加载js,防止因js加载不了影响页面显示

    浏览器加载静态资源和js的方式都是线性加载,所以一般情况可以将js放到</body>前,防止UI线程的阻塞. 而某些时候我们既希望js在整个网页的头部就加载,又担心js阻塞导致网站加载缓慢 ...

  4. JS实现让滚轮控制网页头部显示与隐藏

    在很多网站中都有鼠标网上滚动头部就会滑出,继续往下滚动就会隐藏,下面看看实现方法 scroll(); function scroll(){// 入口方法 这个方法是获取事件的兼容,获取delta -- ...

  5. JS判断IE版本并在页面显示内容

    <script type="text/javascript"> var isIE = function (ver) { var b = document.createE ...

  6. Django实现图片上传并前端页面显示

    Django实现图片上传和图片显示 开始之前我们先确认环境中已经安装了Pillow,如果没有安装,可以通过pip install Pillow来安装,这个是python的图像处理库 数据库设置 我们创 ...

  7. 图片转成base64位 页面中图片展示

    <img src="data:image/gif;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABG ...

  8. jquery控制左右箭头滚动图片列表

    jquery控制左右箭头滚动图片列表的实例. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  9. js控制页面显示和表单提交

    早期的web页面在显示方面一般在后台进行控制,虽然对后台开发来讲是比较容易做到的,但是涉及到一个问题,那就是数据库压力. 因为要控制显示,所以会比较频繁的从数据库中来回调用. 现在的js功能越来越强, ...

随机推荐

  1. synchronized锁级别的一个坑

    在实现一次对限流接口访问时,我错误的使用了单例+synchronized修饰方法的形式实现,这样在限流方规则为不同接口不同限制,单独限制时,同一个实例中的所有被synchronized修饰的方法竞争同 ...

  2. 搭建Karma+Jasmine的自动化单元测试

    最近在打算将以前的代码进行重构,过程中发现自己不写自动化测试代码,而是手动的写,这样并不好,所以就学了Karma+Jasmine的自动化单元测试,以后写代码尽量要写自动化单元测试,也要测一下istan ...

  3. 《ASP.NET Core In Action》读书笔记系列二 ASP.NET Core 能用于什么样的应用,什么时候选择ASP.NET Core

    ASP.NET Core 能用于什么样的应用 ASP.NET Core 可以用作传统的web服务.RESTful服务.远程过程调用(RPC)服务.微服务,这归功于它的跨平台支持和轻量级设计.如下图所示 ...

  4. bzoj1036 [ZJOI2008]树的统计Count 树链剖分模板题

    [ZJOI2008]树的统计Count Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u ...

  5. 2018-2019-2 20175205实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175205实验一<Java开发环境的熟悉>实验报告 实验步骤 (一)命令行下Java程序开发 在Linux下运行结果: 在IDEA中运行结果: (二)IDEA下J ...

  6. Jquery小功能实例

    下拉框内容选中左右移动 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sele ...

  7. appium1.4版本,每次运行appium时需要安装unlock,setting文件的解决方法

    在使用appium执行自动化脚本时,首次运行脚本时会在手机中安装unlock,setting,inputmanager三个apk,以达到让appium控制app的目的,但是运行完一次之后,在OPPO, ...

  8. jdbc笔记(二) 使用PreparedStatement对单表的CRUD操作

    首先声明,本文只给出代码,并不是做教程用,如有不便之处,还请各位见谅. PreparedStatement相较于Statement,概括来说,共有三个优势: 1. 代码的可读性和易维护性:Prepar ...

  9. Vue 组件&组件之间的通信 之 使用slot分发内容

    slot详细介绍网址:https://cn.vuejs.org/v2/api/#slot 有时候我们需要在自定义组件内书写一些内容,例如: <com-a> <h1>title& ...

  10. spring整合dubbo[单机版]

    Spring整合Dubbo,这个是用xml配置的 (方式一) 来梳理下步骤: 1. 安装zookeeper,在进行简单配置[这里使用单机模式,不用集群] 2. 创建maven项目,构建项目结构 3. ...