首页 > web前端 > css教程 > 正文

如何在div内部实现图片旋转、放大、缩小、拖拽

一个新手
发布: 2017-10-06 10:41:18
原创
3918人浏览过

药药,切克闹,一人我编码累,累把那bug写成堆。秋高气爽空气干燥你一定dei多喝水,过完了这周我就要回去、趁还有几天、你尽情的来跟我怼~~~

新的一年,很久没更博客了,眼看十一要来了,听说过了十一就等过年了,但是感觉刚过完年一样,心里黯然神伤,更博一篇以表对小白驹过隙之神速聊以慰藉下……

在开发中这样一个场景,web应用程序某处功能会接收来自各个户上传的图片,后台有个图片查看功能,实际生产过程中的结果出现了用户上传的图片是倒转的或者图片因为远距离拍摄上传的比较模糊的情况。

1、解决图片角度的问题

大概原理很简单,切换HTML元素对象(图片)的class。如下CSS代码:


.rot1 {
    transform:rotate(90deg);
    filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
}
.rot2 {
    transform:rotate(180deg);
    filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
}
.rot3 {
    transform:rotate(270deg);
    filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
登录后复制

再添加简单的JavaScript代码——根据是向左转还是向右转动态改变class的名称就行了。再次提示下,IE8浏览器是使用的是-ms-filter直接filter没有效果。
这里使用的是CSS3+filter滤镜的方法,所以低版本的Firefox以目前版本的Opera浏览器下式没有效果的。但绝对适用于90%以上的互联网用户了。

2、图片放大缩小

即为调整图片的宽和高。如下核心代码


  //放大缩小图片 function imgToSize(size) {
    var img = $("#rotImg");
    var oWidth = img.width();
    //取得图片的实际宽度 var oHeight = img.height();
    //取得图片的实际高度 img.width(oWidth + size);
    img.height(oHeight + size / oWidth * oHeight);
}
登录后复制

3、区域内拖动图片

图片放大超过父级容器时,支持图片在容器内拖动,在mousedown的条件下绑定mousemove,计算拖拽区域大小,核心代码如下:


 $(document).bind('mousemove.imgview', function (event) {
    if ($img.data('mousedown')) {
    var dx = event.pageX - settings['pageX'];
    var dy = event.pageY - settings['pageY'];
    if ((dx == 0) && (dy == 0)) {
    return false;
}
var newX = parseInt($img.css('left')) + dx;
    if (newX > 0) newX = 0;
    if (newX < settings['width'] - $img.width()) newX = settings['width'] - $img.width() + 1;
    var newY = parseInt($img.css('top')) + dy;
    if (newY > 0) newY = 0;
    if (newY < settings['height'] - $img.height()) newY = settings['height'] - $img.height() + 1;
    if (settings['width'] >= $img.width()) {
    newX = settings['width'] / 2 - $img.width() / 2;
}
if (settings['height'] >= $img.height()) {
    newY = settings['height'] / 2 - $img.height() / 2;
}
$img.css('left', newX + 'px');
    $img.css('top', newY + 'px');
    settings['pageX'] = event.pageX;
    settings['pageY'] = event.pageY;
    $img.data('cannot_minimize', true);
}
return false;
}
);
登录后复制

4、综合功能实现代码如下,运行请底部下载demo


  Title    

@@##@@

登录后复制

5、最终效果如下图所示:

如何在div内部实现图片旋转、放大、缩小、拖拽

以上就是如何在div内部实现图片旋转、放大、缩小、拖拽的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号