JQuery,JS图片操作(上一张,下一张,旋转,放大,缩小)
1、html代码:我是从数据库获取图片路径。
<div id="divprint" align="center">
@{DataTable dt = (DataTable)ViewBag.filedetail;}
@{
DataRow dr2 = dt.Rows[];
<input type="hidden" name="srcId" id="srcId" value="@dr2["ImgId"]" />
<img src="/upload/contract/@dr2["fileSrc"]" id="imgsrc" style="margin:0 auto;width:95%;height:95%">
} </div>
<div style="position:fixed;bottom:0;margin-left:180px"> <a id="before" class="easyui-linkbutton" style="width:80px">上一张</a>
<a id="next" class="easyui-linkbutton" style="width:80px">下一张</a>
<a id="big" class="easyui-linkbutton" style="width:80px" onclick="ImageSuofang(true)">放大</a>
<a id="small" class="easyui-linkbutton" style="width:80px" onclick="ImageSuofang(false)"> 缩小</a>
<a id="rotate" class="easyui-linkbutton" style="width:80px">旋转</a>
</div>
2、jquery,js代码(这里是每次点击旋转90度。放大缩小是因为没有做图片会随着窗口变化而变化)
<script type="text/javascript">
$(document).ready(function () {
var arraySrc = new Array;
var index = ;
@foreach (DataRow dr in ViewBag.filedetail.Rows)
{
<text>
arraySrc[index] = "@dr["ImgId"],@dr["fileSrc"]";
index++;
</text>
} //上一张
$("#before").click(function () {
var srcId = $("#srcId").val();
for (var i = ; i < arraySrc.length; i++) {
var src = "";
var no = ;
if (arraySrc[i].split(',')[] == srcId) {
if (i >= ) {
src = "/upload/contract/" + arraySrc[i - ].split(',')[];
no = i - ;
} else {
src = "/upload/contract/" + arraySrc[i].split(',')[];
no = i;
}
$("#imgsrc").attr('src', src);
$("#srcId").val(no);
}
}
})
//下一张
$("#next").click(function () {
var srcId = $("#srcId").val();
for (var i = ; i < arraySrc.length; i++) {
var src = "";
var no = ;
if (arraySrc[i].split(',')[] == srcId) {
if (i <= arraySrc.length - ) {
src = "/upload/contract/" + arraySrc[i + ].split(',')[];
no = i + ;
} else {
src = "/upload/contract/" + arraySrc[i].split(',')[]
no = i;
}
$("#imgsrc").attr('src', src);
$("#srcId").val(no);
}
}
})
//旋转
var num = ;
$("#rotate").click(function () {
num++;
$("#imgsrc").rotate(num * );
}) });
//放大缩小
function ImageSuofang(args) {
var imgsrc = document.getElementById("imgsrc");
if (args) {
imgsrc.width = imgsrc.width * 1.1;
imgsrc.height = imgsrc.height * 1.1;
}
else {
imgsrc.width = imgsrc.width / 1.1;
imgsrc.height = imgsrc.height / 1.1;
}
} </script>
3、Controller代码:js里 filedetail 的数据来源
public ActionResult DeviceEnclosureImgSeeForm()
{
FADeviceEnclosureModel DeviceEnclosureModel = new FADeviceEnclosureModel();
FADeviceEnclosure detail = DeviceEnclosureModel.Detail(int.Parse(Request["DeviceEnclosureId"]));
if (detail == null)
return Content("<script >alert('找不到信息!');window.parent.location.reload();</script >", "text/html"); DataTable dt = new DataTable();
dt.Columns.Add("ImgId");
dt.Columns.Add("fileSrc");
string[] DeviceEnclosureFileList = detail.DeviceEnclosureFile.Split(';'); for (int i = ; i < DeviceEnclosureFileList.Length; i++)
{
DataRow dr = dt.NewRow();
dr["ImgId"] = i;
dr["fileSrc"] = DeviceEnclosureFileList[i].ToString();
dt.Rows.Add(dr);
} ViewData["filedetail"] = dt; return View();
}
JQuery,JS图片操作(上一张,下一张,旋转,放大,缩小)的更多相关文章
- 分享图片压缩上传demo,可以选择一张或多张图片也可以拍摄照片
2016-08-05更新: 下方的代码是比较OLD的了,是通过js进行图片的剪切 旋转 再生成,效率较低. 后来又整合了一个利用native.js本地接口的压缩代码 ,链接在这 .页面中有详细的说明, ...
- jQuery模拟原生态App上拉刷新下拉加载
jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. <!doctype html> <html ...
- 项目总结07:JS图片的上传预览和表单提交(FileReader()方法)
JS图片的上传预览和表单提交(FileReader()方法) 一开始没有搞明白下面这块代码的,今天有时间简单整理下 核心点:FileReader()方法 以下是代码(以JSP文件为例) <!DO ...
- js实现点击按钮实现上一张下一张相册滚动效果
/****判断图片是否构成滚动效果*/$(function(){ if($("#bar").find('img').size()*71<=$("#bar&qu ...
- .NET Core 图片操作在 Linux/Docker 下的坑
一.前言 .NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image.Bitmap 等类型.对于图片的操作在我们开发中很常见,比如:生成验证码. ...
- js 图片压缩上传(base64位)以及上传类型分类
一.input file上传类型 1.指明只需要图片 <input type="file" accept='image/*'> 2.指明需要多张图片 <input ...
- js 图片压缩上传(纯js的质量压缩,非长宽压缩)
下面是大神整理的demo,很实用,这里存一下备用,感谢大神! 此demo为大于1M对图片进行压缩上传 若小于1M则原图上传,可以根据自己实际需求更改. demo源码如下 <!DOCTYPE ht ...
- js图片压缩上传
最近公司的移动产品相约app要做一次活动,涉及到图片上传,图片又不能太大,不然用户体验太差,必须先压缩再上传,所以用到了html5的canvas和FileReader,代码先上,小弟前端经验不足,代码 ...
- JS框架_(JQuery.js)图片相册掀开切换效果
百度云盘 传送门 密码:y0dk 图片掀开切换效果: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...
随机推荐
- hql 语法与详细解释
HQL查询: Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此 Hi ...
- leetcode.数组.27移除元素-Java
1. 具体题目 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空 ...
- [POI2011]IMP-Party
题目 不难发现\(\frac{2}{3}n-\frac{1}{3}n=\frac{1}{3}n\)(雾 一个团要求点之间两两有边,于是我们枚举两个点,如果这两个点之间没有边相连,那么就删掉这两个点,由 ...
- shiro注解权限拦截失效解决
今天在给项目添加注解拦截的时候,总是发现拦截不起作用,加入了这个注解按照角色来进行拦截.角色不是1的用户访问此方法都会被拦截. 测试了一会发现把注解bean配置到了shiro.xml中没有起作用.需要 ...
- Keil5-建立第一个STM32工程
此致:特别感谢作者Lomo-chen所写的文章给我的帮助,我尝试做了一下,成功了,今天整理一下. 一.建立文件夹: 1.在桌面或其他盘建立一个文件夹,此处名称为Test,用来存放工程程序. 2.在Te ...
- Laravel Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found
Laravel: 5.5.* 在迁移中有重命名操作的时候,运行 php artisan migrate 会提示 Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' ...
- Maven pom配置(Spring+SpringMvc+mybaties)
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven ...
- 去sqlserver日志
USE [master] GO ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE DNName SET ...
- SQL SERVER中[dbo]的解释
1.作用: (1)DBO是每个数据库的默认用户,具有所有者权限,即DbOwner:通过用DBO作为所有者来定义对象,能够使数据库中的任何用户引用而不必提供所有者名称.(2)至于为什么要使用所有者进行限 ...
- 《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击
在上个系列<你的DNS服务真的安全么?>里我们介绍了DNS服务器常见的攻击场景,看完后,你是否对ddos攻击忧心重重?本节我们来告诉你,怎么破局!! 首先回顾一下DDoS攻击的原理.DDo ...