zoukankan      html  css  js  c++  java
  • 点击添加本地图片的前端效果制作

    UI就一般就行。

    1.实现点击打开本地上传图片窗口。

    方法1:给UI样式"input"的父标签加绝对定位,在UI样式"input"标签后面加<input type="file">,给这个标签设置宽度大小都跟UI样式"input"标签的宽高一致然后通过定位在其上,透明度设为0,这样就可以了。

    方法2:不用给UI样式"input"的父标签加绝对定位,<input type="file">随便放在页面的任何地方,给其加隐藏,然后给其加事件绑定。绑定一个click事件,然后将这个绑定好的click事件函数放入UI样式"input"标签中的onclick事件中,这样在每次点击的时候就会触发<input type="file">的点击事件。

    <script>
    function informationREFile(){
    return $('#informationREFile').click();
    }
    </script>

    2.实现点击上传图片之后的图片预览

    方法1:取图片img的上一级标签的classname或者idname。加上实现预览功能的JS。

    <script>
    function previewByCreateObjectURL(file) {
    var img = new Image(), url = img.src = URL.createObjectURL(file);
    var $img = $(img);
    img.onload = function() {
    URL.revokeObjectURL(url)
    $('.inforRRI-images-change').empty().append($img); //显示图片img的父级class或ID
    }
    }
    function preview(objURL){
    var img = new Image(),url=img.src=objURL;
    var $img = $(img);
    img.onload = function() {
    URL.revokeObjectURL(url)
    $('.inforRRI-images-change').empty().append($img);//显示图片img的父级class或ID
    }
    }
    function createObjURL(file){
    return URL.createObjectURL(file);
    }
    $(function() {
    $('#informationREFile').change(function(e) {//显示图片img的父级class或ID
    var file = e.target.files[0];
    previewByCreateObjectURL(file);
    })
    });
    </script>

    方法2:

    <script type="text/javascript">
    //下面用于图片上传预览功能
    function setImagePreview(avalue) {
    var docObj = document.getElementById("img");//type="file"的input的ID

    var imgObjPreview = document.getElementById("preview");//显示图片的ID
    if (docObj.files && docObj.files[0]) {
    //火狐下,直接设img属性
    imgObjPreview.style.display = 'block';
    imgObjPreview.style.width = '100px';
    imgObjPreview.style.height = '80px';
    //imgObjPreview.src = docObj.files[0].getAsDataURL();

    //火狐7以上版本不能用上面的getAsDataURL()方式获取,需要以下方式
    imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);
    } else {
    //IE下,使用滤镜
    docObj.select();
    var imgSrc = document.selection.createRange().text;
    var localImagId = document.getElementById("localImag");
    //必须设置初始大小
    localImagId.style.width = "100px";
    localImagId.style.height = "80px";
    //图片异常的捕捉,防止用户修改后缀来伪造图片
    try {
    localImagId.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
    localImagId.filters
    .item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc;
    } catch (e) {
    alert("您上传的图片格式不正确,请重新选择!");
    return false;
    }
    imgObjPreview.style.display = 'none';
    document.selection.empty();
    }
    return true;
    }
    </script>

    注意事项:提交表单数据的时候如果表单中有图片需要在form中加enctype="multipart/form-data"

  • 相关阅读:
    新创建django项目,但网页打不开127.0.0.1:8000
    列表计算整数出现次数,并以次数大小重新排序
    Appium+python自动化
    笔试考试系统--学生管理加载和添加
    笔试考试系统--MVC实现登录
    笔试考试系统--配置EF;运行单元测试
    笔试考试系统--项目搭建及用Log4Net记录日志
    笔试考试系统--第一天需求分析及数据库设计
    笔试考试系统--引言
    不用加减乘除做加法,求2个数的平均数
  • 原文地址:https://www.cnblogs.com/clear93/p/5138352.html
Copyright © 2011-2022 走看看