html输入框中删除按钮输入出现,不输入隐藏交互实现

功能描述:

1.输入框中输入内容时删除按钮出现

2.点击清除按钮清空输入框中的内容

3.点击页面中除了输入框和按钮本身以外的html元素时删除按钮消失

4.滑动屏幕时删除按钮消失

5.键盘落下时删除按钮消失

html代码如下:(简化样式)

<div><input type="text" placeholder="请输入验证码" class="pmsInput"><i class="deleteIcon"></i></div>

css代码:

.deleteIcon{

    /* 图片或生成图标库引用 */

    display: none;   /*先把图片隐藏 */

}

js代码:(依赖jquery或者zepto)

$(function(){

    var winHeight = $(window).height();

    $('.delectIcon').tap(function(){

        $(this).parents('.Cformline').find('input').val("");

    })

//点击清除按钮清空输入框中的内容

    $('.delectIcon').parent('.Ltar').tap(function(){

        $(this).parents('.Cformline').find('input').val("");

    })

    $('input').bind("focus input propertychange",function(){

        if($(this).val().length!=0){

            var delIcon = $(this).parents('.Cformline').find('.delectIcon');

            delIcon.css({'display':'inline-block'});

        }else{

            $('.delectIcon').hide();

        }

    })

    //点击除了输入框以外的html元素时删除按钮消失

    $('body').tap(function(e){

        if($(e.target).closest("input").length == 0){

            $('.delectIcon').hide();

        }

    })

    //(ios)滑动屏幕时删除按钮消失

    $(window).scroll(function () {

        if(document.body.scrollTop == 0){

            $('.delectIcon').hide();

        }

    })

    //(安卓端)键盘落下时删除按钮消失

    $(window).resize(function(){

        var thisHeight = $(window).height();

        if(winHeight - thisHeight <= 50){

            $('.delectIcon').hide();

        }else{

            if($("input:focus").val() && $("input:focus").val().length > 0){

                $('.delectIcon').css({'display':'inline-block'});

            }

        }

    })

})

示例图片:

(代码进一步完善中,若有bug或优化建议欢迎指教O(∩_∩)O)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,203评论 0 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,394评论 0 2
  • Attribute: $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $("img...
    扑克脸_457e阅读 600评论 0 1
  • 爱情是锦上添花,我是赞成的。 一般的爱情满足上面的算术运算。 我所理解的锦上添花式爱情大概是这个意思吧。 锦上添花...
    DreamWinter阅读 1,001评论 0 51
  • 今天是亲子日记 第二天,今天晚上孩子做作业很不专心,本来一个小时完成的作业,到七点半才完成,我实在忍不住批评了他,...
    二年级四班孙明帅妈妈阅读 185评论 0 0