整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML+CSS 实现商品图片列表放大视觉效果 复制完整代码即可马上调用

作者:极客小俊」
「 把逻辑思维转变为代码的技术博主」


咱们废话不多说直接上代码案例素材!

准备工作

首先准备图片素材 放入到你的demo案例下的img文件夹

当然图片你也可以用其他类似的图来代替也是可以的!

如图

HTML代码结构

 <div id="big">
            <div class="box">
                <div class="pic"><img src="img/bag.jpg" alt="" title=""/></div>
                <div class="mask">
                    <h2>三用小巧思波士顿包</h2>
                    <p>印花波士顿包 复古波士顿包,手提单肩斜挎多用,印花PVC</p>
                </div>
                <div class="title">
                    <h2 class="sl"><span></span>全场2折起 印花波士顿包 专柜终身保养</h2>
                    <h3 class="sl"><i></i><span>抢全场2件88折</span>新款蜜蜂系列印花手提斜挎包</h3>
                    <div class="price">
                        <div class="zx_pr"><span>¥</span>659</div>
                        <div class="xl_yp">
                            <p><del>¥1998.00</del><span>退货赔运费</span></p>
                            <p><strong>70</strong>件已付款</p>
                        </div>
                        <div class="buy">抢!</div>
                    </div>
                </div>
            </div>
            <div class="box">
                 <div class="pic"><img src="img/bag3.jpg" alt="" title=""/></div>
                 <div class="mask">
                    <h2>猪年纪念款经典牛皮水桶包</h2>
                    <p>猪年纪念款 经典牛皮水桶包,自带强大气场</p>
                 </div>
                 <div class="title">
                    <h2 class="sl"><span></span>全场2折起 印花波士顿包 专柜终身保养</h2>
                    <h3 class="sl"><i></i><span>抢全场2件88折</span>新款蜜蜂系列印花手提斜挎包</h3>
                    <div class="price">
                        <div class="zx_pr"><span>¥</span>659</div>
                        <div class="xl_yp">
                            <p><del>¥1998.00</del><span>退货赔运费</span></p>
                            <p><strong>70</strong>件已付款</p>
                        </div>
                       <div class="buy">抢!</div>
                    </div>
                </div>
            </div>
            <div class="box">
                <div class="pic"><img src="img/bag4.jpg" alt="" title=""/></div>
                <div class="mask">
                    <h2>一包四用蜜蜂系列迷你小方包</h2>
                    <p>四用方盒包 一包四用蜜蜂系列迷你链条小方包</p>
                </div>
                <div class="title">
                    <h2 class="sl"><span></span>全场2折起 印花波士顿包 专柜终身保养</h2>
                    <h3 class="sl"><i></i><span>抢全场2件88折</span>新款蜜蜂系列印花手提斜挎包</h3>
                    <div class="price">
                        <div class="zx_pr"><span>¥</span>659</div>
                        <div class="xl_yp">
                            <p><del>¥1998.00</del><span>退货赔运费</span></p>
                            <p><strong>70</strong>件已付款</p>
                            </div>
                        <div class="buy">抢!</div>
                    </div>
                </div>
            </div> 
        </div>

CSS代码结构

*{
            padding:0px;
            margin:0px;
        }
        body{
            font-family: '微软雅黑';
        }
        .sl{
            white-space: nowrap;
            word-break: keep-all;
            text-overflow: ellipsis;
        }
        #big{
            width:950px;
            height:416px;
            margin:10px auto;
            overflow: hidden;
        }
        #big>.box{
            width:298px;
            height:410px;
            float: left;
            position: relative;
            overflow: hidden;
            border:1px solid #ccc;
            margin-left:19px;
        }
        #big>.box:first-child{
            margin-left:0px;
        }
        #big>.box>.pic{
            width:298px;
            height:300px;
            overflow: hidden;
        }
        #big>.box>.pic>img{
            transition: all 500ms;
        }
        #big>.box:hover>.pic>img{
            transform: scale(1.5);
        }
        #big>.box>.mask{
            height:300px;
            width:298px;
            position: absolute;
            left:-298px;
            top:0px;
            background:rgba(0,0,0,0.3);
            transition: all 600ms;
            color:#fff;
        }
        #big>.box>.mask>h2{
            font-size: 18px;
            margin:80px 0px 10px 10px;
        }
        #big>.box>.mask>p{
            font-size: 12px;
            margin:0px 0px 10px 10px;
        }
        #big>.box:hover>.mask{
            left:0px;
        }
        #big>.box>.title>h2{
            margin:10px auto;
            width:288px;
            height:20px;
            line-height: 20px;
            font-size: 14px;
            color:#333;
            overflow: hidden;
            font-weight: normal;
        }
        #big>.box>.title>h2>span{
            display: inline-block;
            width:31px;
            height:16px;
            vertical-align: middle;
            background: url('img/tu.png') no-repeat;
            background-size:cover;
            margin-right:5px;
        }
        #big>.box>.title>h3{
            width:288px;
            height:20px;
            margin:0px auto;
            font-size: 12px;
            color:#666;
            font-weight: 400;
        }
        #big>.box>.title>h3>i{
            width:12px;
            height:16px;
            display: inline-block;
            background:url('img/tu1.jpg') no-repeat;
            vertical-align: middle;
        }
        #big>.box>.title>h3>span{
            color:#f00;
            margin:0 5px 0 5px;
        }
        #big>.box>.title>.price{
            width:298px;
            height:50px;
            background:#e61414;
        }
        #big>.box>.title>.price>.zx_pr>span{
            font-size: 20px;
        }
        #big>.box>.title>.price>.zx_pr{
            width:83px;
            height:50px;
            line-height: 50px;
            float: left;
            margin-left:2px;
            vertical-align: bottom;
            font-size:38px;
            color:#fff;
        }
        #big>.box>.title>.price>.buy{
            width:56px;
            height:50px;
            line-height: 50px;
            text-align: center;
            background:url('img/tu3.png') no-repeat;
            float:right;
            color:#f00;
        }
        #big>.box>.title>.price>.xl_yp{
            width:145px;
            height:41px;
            float: left;
            margin:4px 0 0 8px;
            font-size: 12px;
            color:#fff;
        }
        #big>.box>.title>.price>.xl_yp>p>span{
            margin-left:4px;
            width:72px;
            height:17px;
            display: inline-block;
            line-height: 17px;
            text-align: center;
            border-radius: 10px;
            background:#ffb369;
        }
        #big>.box>.title>.price>.xl_yp>p:nth-child(2){
            width:80px;
            height:20px;
            line-height: 20px;
            text-align: center;
            border-radius: 1px;
            margin-top:5px;
            background:rgba(0,0,0,0.2);
        }
        #big>.box>.title>.price>.xl_yp>p:nth-child(2)>strong{
            margin-right: 5px;
            font-size: 14px;
        }

最终效果

如图



"点赞" "✍️评论" "收藏"

大家的支持就是我坚持创作下去的动力!


​如果以上内容有任何错误或者不准确的地方,欢迎在下面 留个言指出、或者你有更好的想法,欢迎一起交流学习❤️❤️❤️❤️❤️​

TML编辑器 复制WORD里面带图文的文章,图片可以直接显示,JSP – 支持WORD上传的富文本编辑器,EWEBEDITOR 从WORD中复制内容带多张图片,如何从WORD文档复制公式到富文本编辑器,复制word图片,从word中复制图片,

从word中粘贴图片,粘贴word内容,粘贴word图片,粘贴word图文,复制粘贴word文档,复制粘贴word图片,复制粘贴word图文,复制粘贴word内容,

之前在网上找过相关的资料,论坛里面也有网友交流过,还加过不少QQ群和微信群,但是结果都不太令人满意。相关的文章提问的人多,能够给出方案的人少,能够给出成熟产品的就更少了,说的直接一点根本就没有,纯属浪费时间。要示例没示例,要代码没代码,根本就用不了,

有几个方面的原因吧,一个是网上的资料提的一些都是开源的方案,也不是说开源的方案不行,关键是提到的这些方案,公司项目组去评估发现联系不到开发人员,而且方案本身也停止更新了,处于没有人维护的状态,所以项目组这边不太敢用。主要是之前在这块也踩过坑。

客户那边也不差这点钱,之前公司项目组就是在这块踩过坑,用了开源的方案,客户那边提了一个新需求,但是由于项目组对产品本身并不熟悉,导致没办法进行二次开发。

从word中复制图片和文字内容,然后粘贴到web富文本编辑器中,粘贴后word图片自动上传到web服务器中,自动将图片和文字HTML添加到编辑器中,保留word中的文字格式,文字颜色,字体,样式,

用户发布新闻的时候是从word里面复制图片和文字,然后将word图文内容粘贴到web富文本编辑器中,希望能够将word的图片自动上传到服务器中,服务器地址能够自定义,

后端的话需要支持任意开发语言,比如ASP,ASP.NET,JSP,PHP,PYTHON等。只要是基于标准HTTP协议的都要支持。如果能够不装控件最好,视频教程:https://www.ixigua.com/7233953214108795407

1.下载示例:

http://www.ncmem.com/webapp/wordpaster/versions.aspx

2.复制WordPaster插件目录

3.引入插件文件

注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4

4.在工具栏中增加插件按钮

6.初始化控件

注意:

1.如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段

参考:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45

2.如果接口返回JSON,请配置ImageMatch

参考:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1

3.如果接口返回的图片地址没有域名,请配置ImageUrl

参考:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936

4.如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。

参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3

效果

订阅版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAw70JsA8m
政企版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuqJtN30#/

年费版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwFouDIB4#/

OEM版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwV00mQSY

产品源代码:https://drive.weixin.qq.com/s?k=ACoAYgezAAwz13B5Tr
授权码生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwzYuEEY1

JavaScript中,您可以使用HTML5的<input type="file">元素来实现图片上传功能。

以下是一个简单的示例代码,演示如何在JavaScript中上传图片:

HTML部分:

<input type="file" id="uploadInput">
<button onclick="uploadImage()">上传图片</button>

JavaScript部分:

function uploadImage() {
  var fileInput = document.getElementById('uploadInput');
  var file = fileInput.files[0];

  if (file) {
    var formData = new FormData();
    formData.append('image', file);

    // 发送图片数据到服务器
    // 这里可以使用XMLHttpRequest或fetch等方法发送请求
    // 请根据您的需求选择适当的方法
    // 示例中使用XMLHttpRequest发送POST请求
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/upload', true);
    xhr.onload = function() {
      if (xhr.status === 200) {
        // 上传成功
        console.log('图片上传成功');
      } else {
        // 上传失败
        console.log('图片上传失败');
      }
    };
    xhr.send(formData);
  }
}

API部分:

[HttpPost]
[RequestSizeLimit(5242880)]
 public async Task<APIResult> upload(IFormCollection collection)
 {

            APIResult rtn = new APIResult();

            if (collection == null)
            {
                rtn.code = -100;
                rtn.msg = "图片列表为空";
                return rtn;
            }
            else
            {
                try
                {
                    string file_path = "";
                    // 预处理 用户参数:用户指定子路径                   
                    string userPath = DateTime.Now.ToString("yyyy-MM-dd");
                    if (collection.ContainsKey("path"))
                    {
                        collection.TryGetValue("path", out Microsoft.Extensions.Primitives.StringValues val);
                        if (!val.Equals("undefined"))
                        {
                            userPath = val.ToString();
                        }
                    }

                    // 预处理 文件路径
                    // 注意:这里可能会根据不同的环境来 修改 路径前面是否需要添加 /
                    // 当发现上传不成功,目录无法创建时,可以尝试修改这里
                    file_path = $"upload/imgs/{userPath}/";
                    var uploadPath = Path.Combine(_webHostEnvironment.WebRootPath, file_path);
                    if (!Directory.Exists(uploadPath))
                    {
                        Directory.CreateDirectory(uploadPath);
                    }

                    // 处理文件
                    FormFileCollection filelist = (FormFileCollection)collection.Files;
                    foreach (IFormFile file in filelist)
                    {
                        // 保存文件到磁盘
                        string name = file.FileName;
                        string FilePath = Path.Combine(uploadPath, name);
                        string type = Path.GetExtension(name);
                        using (var stream = System.IO.File.Create(FilePath))
                        {
                            await file.CopyToAsync(stream);
                        };

                        // 保存文件信息到表
                        Sys_File f = new Sys_File();
                        f.code = "image";
                        f.name = name;
                        f.file_type = type.Trim('.');
                        f.file_group = userPath;
                        f.file_path = $"/{file_path}{name}";
                        f.is_active = true;
                        f.memo = "";
                        f.createTime = DateTime.Now;
                        using (var dbctx = DBHelper.db)
                        {
                            await dbctx.AddAsync(f);
                            await dbctx.SaveChangesAsync();
                        };
                        // 返回消息,包含文件路径
                        rtn.datas = $"/{file_path}{name}";
                        rtn.code = 100;
                        rtn.msg = "文件已保存!";
                    }
                }
                catch (Exception ex)
                {
                    rtn.code = -200;
                    rtn.msg = "图片保存失败!";
                    Log4NetUnit.Instance.Log.Error("图片保存失败:" + ex.Message);
                }
                return rtn;
            }
        }


在这个示例中,我们首先在HTML中创建了一个<input type="file">元素,用于选择要上传的图片。

然后,我们在JavaScript中编写了一个uploadImage函数,该函数在点击"上传图片"按钮时触发。

uploadImage函数中,我们首先获取到<input>元素,并从中获取到用户选择的图片文件。

然后,我们创建一个FormData对象,并将图片文件添加到其中。

接下来,我们可以使用XMLHttpRequest或fetch等方法将图片数据发送到服务器。

在示例中,我们使用XMLHttpRequest发送了一个POST请求,将图片数据作为FormData发送到/upload端点。

您需要根据您的实际情况修改URL和请求方法。

当请求完成时,我们可以根据响应的状态码来判断上传是否成功。

在示例中,如果状态码为200,则表示上传成功,否则表示上传失败。

请注意,由于安全性限制,JavaScript无法直接访问用户的文件系统。

因此,用户必须手动选择要上传的文件。