javascript 动态调整图片尺寸实现代码
我前段时间写的一篇文章就遇到过这种事情,后来用CSS的overflow和max-width属性暂时解决了页面变形的问题。这种方法好处是简单,但坏处是会破坏某些细节的效果。
如overflow:hidden,意思是当内部元素宽度大于父框架时隐藏超出宽度的部分。这样做可能会是一些内容突然截断,被隐藏了,很对不起观众。
通过max-width属性限制文章插图最大宽度的话,需要考虑各浏览器的兼容性。IE6是不支持这个属性的,在我印象中,一些浏览器虽然支持这个属性,但图片不是等比缩放的(好像是Safari和Opera,记不清了),这样做的话对这些浏览器的用户很不公平。
因此,我最终选择的是通过JavaScript动态改变图片尺寸。这种方法对各种浏览器兼容性良好(现在应该很少人会禁用JavaScript吧?),如果换主题的话,也可以灵活地改变文章插图的最大尺寸。
方案有两个,由于我使用的主题是加载了jQuery库的,因此可以用以下代码实现:
代码如下:
$(document).ready(function() {
$('.post img').each(function() {
var maxWidth = 100; // 图片最大宽度
var maxHeight = 100; // 图片最大高度
var ratio = 0; // 缩放比例
var width = $(this).width(); // 图片实际宽度
var height = $(this).height(); // 图片实际高度
// 检查图片是否超宽
if(width > maxWidth){
ratio = maxWidth / width; // 计算缩放比例
$(this).css("width", maxWidth); // 设定实际显示宽度
height = height * ratio; // 计算等比例缩放后的高度
$(this).css("height", height * ratio); // 设定等比例缩放后的高度
}
// 检查图片是否超高
if(height > maxHeight){
ratio = maxHeight / height; // 计算缩放比例
$(this).css("height", maxHeight); // 设定实际显示高度
width = width * ratio; // 计算等比例缩放后的高度
$(this).css("width", width * ratio); // 设定等比例缩放后的高度
}
});
});
function ResizeImage(image, 插图最大宽度, 插图最大高度)
{
if (image.className == "Thumbnail")
{
w = image.width;
h = image.height;
if( w == 0 || h == 0 )
{
image.width = maxwidth;
image.height = maxheight;
}
else if (w > h)
{
if (w > maxwidth) image.width = maxwidth;
}
else
{
if (h > maxheight) image.height = maxheight;
}
image.className = "ScaledThumbnail";
}
}
采用纯JavaScript的话,麻烦点,需要手动为图片加上class=”Thumbnail”,但最终效果是一样的。
相关推荐
-
JavaScript获取图片的原始尺寸以宽度为例
页面里的img元素,想要获取它的原始尺寸,以宽度为例可能首先想到的就是width,如下 复制代码 代码如下: <img src="http://img11.360buyimg.com/da/g14/M07/01/0E/rBEhVlNhh8wIAAAAAADmFBLo1twAAM26gOmCgYAAOYs716.jpg"> <script> var img = document.getElementsByTagName('img')[0] var width =
-
Javascript判断图片尺寸大小实例分析
通常我们判断js图片大小都是利用images对象,然后再用attr来获取图片地址再进行判断就可以了,下面来看一些例子.最简单办法: 复制代码 代码如下: var img=new Image(); img.src=$('#tlogo').attr('src'); if(img.width > '240'){ $('#tlogo').attr('width','240');} 上面例子碰到如果页面没有加载完的时候,这时js就获取不了图片大小了,对此我们可以先判断加载完成否再
-
JS等比例缩小图片尺寸的实例
为了提升用户体验,网站用户在上传图片的时候,我们不能够让用户自己去处理图片以达到我们的要求. 而通常像淘宝上商品实物展示这样的页面,我们需要控制的主要是图片的宽度. 又考虑到html页面解析顺序可能导致的一些问题,决定通过定义一个简单的功能函数,然后在img元素中添加onload事件来调用的方式进行实现,代码如下: JS部分 复制代码 代码如下: <script type="text/javascript"> function changeImg(objImg) {
-
使用js获取图片原始尺寸
浏览器中显示的图片大小未必是他真实的高和宽,比如像下面这样,我们给他加上宽和高的样式 <img src="IE.png" style="width:25px;height:25px;"> 这样在浏览器中显示的大小就是25px.那么我们如何获取图片的真实大小呢?,下面的代码就实现了这个功能 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta h
-
上传图片js判断图片尺寸和格式兼容IE
js代码: $(".head").change(function() { var val = $(this).val(); if(!val.match( /.jpg|.gif|.png|.bmp/i ) ){ imgtype = false; alert('图片格式无效!'); }else{ if (FileReader) { var reader = new FileReader(), file = this.files[0]; reader.onload = function(e)
-
JavaScript怎么判断图片是否加载完成以便获取其尺寸
有时需要获取图片的尺寸,这需要在图片加载完成以后才可以,求方法? 一.load事件 复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>img - load event</title> </head> <body> <img id="img1" src="http:/
-
图片上传之前检查大小、尺寸、格式并预览的js代码
下面的代码,需要保存到本地种执行,在线看不到实际效果. validate before upload by Lance Zhang File type :gif,jpg,jpeg,png,bmp File Size limit: K Image Height Limit: Image Width Limit: Image Preview function CheckFileSize() { var limit = document.getElementById("fileSizeLimit&qu
-
javascript 获取图片尺寸及放大图片
1)获取图片尺寸 复制代码 代码如下: <img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/> <script>
-
JavaScript简单获取页面图片原始尺寸的方法
本文实例讲述了JavaScript简单获取页面图片原始尺寸的方法.分享给大家供大家参考,具体如下: 这里通过Image()对象获取原始宽高 这种方式就没有那么麻烦,直接new一个Image()对象,然后把img的src赋值给他即可获取. var img = new Image(); img.src = $("#target").attr("src"); if(img.complete){ alert('width:'+img.width+',height'+img.
-
javascript 动态调整图片尺寸实现代码
我前段时间写的一篇文章就遇到过这种事情,后来用CSS的overflow和max-width属性暂时解决了页面变形的问题.这种方法好处是简单,但坏处是会破坏某些细节的效果. 如overflow:hidden,意思是当内部元素宽度大于父框架时隐藏超出宽度的部分.这样做可能会是一些内容突然截断,被隐藏了,很对不起观众. 通过max-width属性限制文章插图最大宽度的话,需要考虑各浏览器的兼容性.IE6是不支持这个属性的,在我印象中,一些浏览器虽然支持这个属性,但图片不是等比缩放的(好像是Safari
-
用javascript动态调整iframe高度的代码
当你在页面上使用了iframe之后,一般来说会不希望iframe显示难看的滚动条,以使iframe里面的内容和主页面的内容浑然一体.这时候你会设置 scrolling="no" 属性.但是这样一来如果iframe里面的内容是变化的,高度会随之内容的变化而变化的时候,你的iframe就会显得太长导致底下一大片空白,或者正好相反,由于iframe的高度太小导致一部分内容会被挡住.这里我提供一个兼容IE/NS/Firefox的javascript脚本实现动态调整iframe的高度.如果需要调
-
JavaScript动态调整TextArea高度的代码
核心代码: 复制代码 代码如下: <script language="javascript" type="text/javascript"> function adjustObjHeight(obj, defaultHeight) { if(obj.scrollHeight > defaultHeight) { obj.style.height = obj.scrollHeight + 'px'; } else { obj.style.height
-
jQuery在页面加载时动态修改图片尺寸的方法
本文实例讲述了jQuery在页面加载时动态修改图片尺寸的方法.分享给大家供大家参考.具体如下: $(window).bind("load", function() { // IMAGE RESIZE $('#product_cat_list img').each(function() { var maxWidth = 120; var maxHeight = 120; var ratio = 0; var width = $(this).width(); var height = $(
-
纯JavaScript手写图片轮播代码
废话不多说了,直接给大家贴js代码实现手写图片轮播的代码了,代码非常简单,具体代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js图片轮播切换</title> <style type="text/css"> .imgCon{width: 400px;height: 400px;border: 2p
-
用javascript动态调整iframe高度的方法
当你在页面上使用了iframe之后,一般来说会不希望iframe显示难看的滚动条,以使iframe里面的内容和主页面的内容浑然一体.这时候你会设置 scrolling="no" 属性.但是这样一来如果iframe里面的内容是变化的,高度会随之内容的变化而变化的时候,你的iframe就会显得太长导致底下一大片空白,或者正好相反,由于iframe的高度太小导致一部分内容会被挡住.这里我提供一个兼容IE/NS/Firefox的javascript脚本实现动态调整iframe的高度.如果需要调
-
php调整gif动画图片尺寸示例代码分享
类的使用demo: 复制代码 代码如下: <?php require_once "roucheng.php"; $gr = new gifresizer; $gr->temp_dir = "keleyi"; $gr->resize("keleyi.gif","keleyi_resized.gif",500,500); ?> 类的源代码,保存为roucheng.php文件: 复制代码 代码如下: <
-
JavaScript 动态改变图片大小
最近由于项目需要,在实现图片的时候,若图片大于100 X 100,则将其缩小为 100 X 100,若比这个小,则保持原图大小.经过研究发现,可以用Javascript代码简单实现. Javascript代码: 复制代码 代码如下: <script> function resizeImage(obj){if(obj.height>100)obj.height=100;if(obj.width>100)obj.width=100; } </script> 页面代码: 复制
-
JSP中使用JavaScript动态插入删除输入框实现代码
JavaScript代码: 复制代码 代码如下: <script language="javascript"> function addrows(){ var len = optionlist.rows.length; //得到table的行数 var obj = optionlist.insertRow(len);//在最后一行插入 /**插入第一列**/ obj.insertCell(0); obj.cells(0).innerHTML="选项" +
-
javaScript 动态访问JSon元素示例代码
复制代码 代码如下: $(document).ready(function () { var obj = {Name: 'Allen', Age: '30'}; for (var o in obj) { var a = console.log(o); // Name ,Age var a = console.log(obj[o]); //Allen,30 } }); </script>
随机推荐
- Java中正则表达式去除html标签
- IOS 下获取 rootviewcontroller 的版本不同的问题解决办法
- javascript放大镜效果的简单实现
- vue 2.0组件与v-model详解
- C语言、C++内存对齐问题详解
- java字符串比较获取字符串出现次数的示例
- PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
- codeigniter中实现一次性加载多个view的方法
- c++友元函数与友元类的深入解析
- PHP 木马攻击的防御设置方法
- ubuntu16.04服务器配置ssh免密码登录
- 拯救你的数据 通过日志恢复MSSQL数据
- 新手常遇到的一些jquery问题整理
- Java Socket编程简介_动力节点Java学院整理
- Android AsyncTask源码分析
- 一个查ASP木马的小东东
- 千兆网线的做法,千兆水晶头的做法
- python3.6+opencv3.4实现鼠标交互查看图片像素
- 微信小程序云开发如何使用npm安装依赖
- python实现名片管理系统