`
lucky_god
  • 浏览: 36133 次
社区版块
存档分类
最新评论

利用file控件实现点击图片更改并回显

    博客分类:
  • html
阅读更多

近段时间在修改项目上的一个功能时,发现可以用这种方式实现点击图片并提交服务器后回显(这里多亏了我的项目经理),将此方法分享给大家作讨论。

当然为了突出关键代码没有写服务器代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    <meta name="description" content="这里是实现点击图片, 调出file的选择文件窗口, 确认后更改图片并回显">
    <title>换图</title>
    <script type="text/javascript" src="jquery-1.4.2.js"></script>
    <style type="text/css">
        .file{width: 480px;height:400px;position:absolute;left: 2;cursor:pointer;border-color: orange;
            filter:alpha(opacity:0);opacity: 0}
        .image{position:absolute; border-color: red;left: 2}
    </style>
</head>
<body>
    <div class="main-div">
        <p>点击下图可更改图片</p>
        <img src="img/hezi.jpg" width="480" height="400" class="image" id="image">
        <input type="file" class="file" id="image-input">
    </div>

<script type="text/javascript">
    $(function(){
        $("#image-input").change(function (){
            $("#image").attr("src",$("#image-input").val());
        });
    });

</script>
</body>
</html>

 这里image是作图片展示的,image-file提供文件选择和服务器提交,让image和image-file相对定位,两者大小一致,image-file设置完全透明并覆盖在image上(不需要设置z-index属性值,file的z-index值默认比img大,请见http://www.w3school.com.cn/cssref/pr_pos_z-index.asp了解更多),鼠标点击实际是点击的image-file,看似点击在图片上。

 

网上也有这种方式:

同样有img和file, 将file隐藏,在img上添加click事件, 其中让file执行click方法,也可以实现选择图片, 但是这种方式不能提交到服务器,可能是因为浏览器安全机制。

 

ps:filter:alpha(opacity:0)是IE的兼容性处理,opacity: 0是CSS3的样式,实现完全透明;

测试代码没有做浏览器兼容性处理(如获得image-file的值),请自测;

欢迎探讨更好的方法。

 

1
4
分享到:
评论
2 楼 lucky_god 2015-02-05  
chenyingna66 写道
这里是怎么实现上传到服务器的

一般是用form表单提交
<form action="XX.action" method="post" enctype="mutipart/form-data">.....</form>
1 楼 chenyingna66 2015-01-09  
这里是怎么实现上传到服务器的

相关推荐

Global site tag (gtag.js) - Google Analytics