zoukankan      html  css  js  c++  java
  • html 移动端关于长按图片弹出保存问题

    在做html5项目的时候有个需求是要拖动一个图片,但是又不要用户长时间按着弹出保存框。首先想到的就是在点图片的时候阻止默认事件的发生:

    js停止冒泡·

    function myfn(e){

    window.event? window.event.cancelBubble = true : e.stopPropagation(); }

    js阻止默认行为

    function myfn(e){
    window.event? window.event.returnValue = false : e.preventDefault();
    }

    防止冒泡

    w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true·

    stopPropagation也是事件对象(Event)的一个方法,作用是阻止目标元素的冒泡事件,但是会不阻止默认行为。什么是冒泡事件?如在一个按钮是绑定一个”click”事件,那么”click”事件会依次在它的父级元素中被触发 。stopPropagation就是阻止目标元素的事件冒泡到父级元素。

    阻止默认行为

    w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false;·

    preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为。既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就没有默认行为,调用当然就无效了。什么元素有默认行为呢?如链接<a>,提交按钮<input type=”submit”>等。当Event 对象的 cancelable为false时,表示没有默认行为,这时即使有默认行为,调用preventDefault也是不会起作用的。

    还有一个比较强悍的return false

    javascript的return false只会阻止默认行为,而是用jquery的话则既阻止默认行为又防止对象冒泡。

    话说回来在项目中无论使用哪种方法动达不到效果;没办法该页面结构,吧img外面套个div,在img上阻止默认事件,拖动div动从而实现拖动图片的目的。但是在阻止图片默认事件时还是阻止不了,查资料找到了  -webkit-touch-callout:none;即为禁用长按页面时的弹出菜单但是用在项目中一点用没有。于是接着找终于找到了pointer-events: none;点击穿透,这里有一篇博友写的介绍http://www.cnblogs.com/92cz/p/5787693.html  我就不再详细说了,最后没用js就把问题解决了太高兴啦,本项目还有另一种解法就是把图片弄成背景图,但是项目已经在测试了 只能用比较简单,保证效果的方法。

  • 相关阅读:
    hdu 4460spfa用map来实现
    hdu 2579
    hdu 2845
    hdu 4462
    hdu 4557
    hdu 4639
    URAL 2078 Bowling game
    UVA
    HDU 5773 The All-purpose Zero 脑洞LIS
    Codeforces Round #368 (Div. 2) C. Pythagorean Triples 数学
  • 原文地址:https://www.cnblogs.com/wangmaoling/p/6408003.html
Copyright © 2011-2022 走看看