代码之家  ›  专栏  ›  技术社区  ›  eozzy

突出显示更改?

  •  2
  • eozzy  · 技术社区  · 15 年前

    HTML:

    <html>
    <body>
        <textarea>Original Text</textarea>
        <button>Replace</button>
    </body>
    </html>
    

    jQuery:

    $(function() {
     $('button').click(function () {
         $('body').html($('body').html().replace('Original','New'));
     });
    });
    

    http://jsfiddle.net/r7MgY/

    我可以用褪色的黄色背景来突出显示更改吗?

    5 回复  |  直到 10 年前
        1
  •  4
  •   fredrik    15 年前

    正如Sarfraz所说,使用jquery颜色插件。用法与jquery中的animate方法相同。该插件重写这些属性的动画方法:“BackgroundColor”、“BorderBottomColor”、“BorderLeftColor”、“BorderRightColor”、“BorderTopColor”、“Color”、“OutlineColor”。

    jquery动画方法用法和信息可以在这里找到: http://api.jquery.com/animate/

    此外,如果要替换HTML中的某个内容,最好获取包含要调用的内容的标记的包装标记,而不是以字符串形式搜索整个正文。通常你会使用:

    $('#idOfMyWrapperTag').html().replace('this', 'that')
    

    但是,由于您使用的是文本区域,因此可以通过以下方式获得它的值:

    $('textarea').val().replace('this', 'that');
    

    弗雷德里克

        2
  •  3
  •   James Westgate    15 年前

    因为它是一个文本区域,所以不能将任何HTML直接插入内容。你必须覆盖一个绝对定位的元素,其中包含一个红色的波形曲线或类似的-当计算出文本的确切位置时,这会变成一个噩梦。

    如果可能,放弃文本区域,只使用可编辑的DIV或类似的。

        3
  •  1
  •   Sarfraz    15 年前

    我能用一个 可能是褪色的黄色背景?

    你必须使用 jquery color plugin 淡出背景色。

        4
  •  1
  •   jAndy    15 年前

    你也许能解决这个问题

    $(function() {
      $('button').click(function () {
         $('body').html($('body').html().replace(/Original/g,'<span class="fade" style="opacity: 0; background-color: yellow;">New</span>'));
         $('.fade').animate({
            'opacity': 1
         }, 1000, function(){
            $(this).contents().unwrap();
         });
      });
    });
    
        5
  •  1
  •   Community CDub    8 年前

    如果您还不想包括另一个插件,只需使用一点jquery代码就可以完成淡入淡出覆盖:

    jQuery.fn.highlight = function() {
       $(this).each(function() {
            var el = $(this);
            el.before("<div/>")
            el.prev()
                .width(el.width())
                .height(el.height())
                .css({
                    "position": "absolute",
                    "background-color": "#ffff99",
                    "opacity": ".9"   
                })
                .fadeOut(500);
        });
    }
    
    $("#target").highlight();
    

    这个答案值得一提: https://stackoverflow.com/a/11589350/1145177