js实现图片放大预览(jq+css)

阔别四个月我又杀回来了,公司最近接了个前后端分离的项目,前端居然是java的目录结构, 我丢藕!!!我个写前端vue的怎么活😢😢😢

上代码:

CSS
.photoViewer{
      text-align: center;
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100vh;
      padding: 50px;
      background-color: #00000070;
      box-sizing: border-box;
    }
JS
function photoViewer(e){
      let img = $(e)[0].children[0].src
      let [demo, deImg] = [document.createElement('div'), document.createElement('img')]
      demo.onclick = closeImg(this)
      // demo.onclick = new Function("closeImg(this)")
      // demo.setAttribute("onClick", "closeImg(this)");
      demo.className = 'photoViewer'
      deImg.src = img
      demo.append(deImg)
      console.log(demo, deImg)
      $('body').append(demo)
    }
    function closeImg(e){
      // console.log($(e).parent())
      // let img = $(e)[0].children[0]
      $(e).remove();
    }

这里又一个重点的地方

// 以为对节点onclick直接添加点击事件就可以了  没想到这样加的不行,点击不生效
demo.onclick = closeImg(this)
// 百度找到下面这两个方法,new Functiuon  和  setAttribute,测试过这两个方法都能生效
// setAttribute 与直接再标签加onclickde 效果一样,能直接再审查元素中看到
demo.onclick = new Function("closeImg(this)")
demo.setAttribute("onClick", "closeImg(this)");
// 通过JQ的remove()方法删除本节点实现关闭
$(e).remove();

呵!还有11天,一个完整的商城在等着我,窝匿吗?要命啊!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值