动画HTML文本更改jQuery

时间:2013-06-20 01:39:44

标签: javascript jquery html

我正在尝试使用javascript和jquery更改HTML元素的文本。到目前为止,这是我的代码,我似乎无法让它工作。我用谷歌搜索了它,似乎无法找到任何东西。

$("div#title").hover(
    function() {
        $(this).stop().animate({
            $("div#title").html("Hello")
        }, "fast");
    },
    function(){
        $(this).stop.animate({
            $("div#title").html("Good Bye")
        }, "fast");
    }
);

任何帮助都会有很大帮助。

7 个答案:

答案 0 :(得分:7)

$("div#title").hover(
    function () {
        $(this).stop().html("Hello").hide(0).fadeIn("fast");
    },
    function () {
        $(this).stop().html("Good Bye").hide(0).fadeIn("fast");
    }
);

jsFiddle example

答案 1 :(得分:6)

您目前的做法是语法不正确,也无法为文本设置动画,而是需要为包含文本的元素设置动画。还不清楚你想要制作什么样的动画,这里有几个例子:

动画不透明度:

$("div#title").hover(

function () {
    $(this).stop().css('opacity', '0').html(function (_, oldText) { // Set the opacity of the div to 0 and then change the html (flip it based on last value)
        return oldText == 'Good Bye' ? 'Hello' : 'Good Bye'
    }).animate({
        opacity: 1 // Animate opacity to 1 with a duration of 2 sec
    }, 2000);
});

Fiddle

动画宽度:

$("div#title").hover(

function () {
    $(this).stop().animate({
        'width': '0px'  // Animate the width to 0px from current width
    }, 2000, function () {  // On completion change the text
        $(this).html(function (_, oldText) {
            return oldText == 'Good Bye' ? 'Hello' : 'Good Bye'
        }).animate({          // and animate back to 300px width.
            'width': '300px'
        }, 2000);
    })
});

Fiddle

答案 2 :(得分:3)

你也可以尝试这个

$("div#title").hover(
   function() {
       $(this).stop().fadeOut("slow",function(){ 
                $(this).html("Hello")
            }).fadeIn("slow");
},
   function(){
       $(this).stop().fadeOut("slow", function(){
                $(this).html("Good Bye")
            }).fadeIn("slow");
});

答案 3 :(得分:2)

文本无法真正鼓励,您可以使用html方法更改内容。 Lettering.js是一个用文本更直观地播放的插件。 http://letteringjs.com/

$("#title").hover(function(){
    $(this).html("Hello");
},function(){
    $(this).html("Good Bye");
});

答案 4 :(得分:2)

打字风格

<font size="7" style="position:absolute; left:0px; top:0px; width:150px; z-index:50;">Hello World!</font>
    <div id="test" style="position:absolute; left:0px; top:0px; height:100px; width:150px; z-index:60; background-color: #ffffff;"></div>

$('#test')。animate({“left”:“150”},2000);

答案 5 :(得分:2)

我为此目的编写了一个插件,你可以在github上查看它:jquery-bubble-text

你可以这样使用它:

bubbleText({
    element: $element,      // must be one DOM leaf node
    newText: 'new Text',    // must be one string
});

在此jsfiddle中查看一个示例。

希望你喜欢它:)

答案 6 :(得分:-1)

选择一个HTML元素。 这是我的示例:


<h1 id="heading">Heading1</h1>
<script src="https://code.jquery.com/jquery-2.1.0.js"></script>
<script>
  //Changing the text part
  $("#heading").text("1Heading");
  // No needed code
  var read = document.getElementById("heading");
  var text = read.value;
  console.log(text);
  //Should be 1Heading
</script>

确保首先加载jQuery:

<h1 id="heading">Heading1</h1>
<script src="https://code.jquery.com/jquery-2.1.0.js"></script>
<script>
  //Changing the text part
  $("#heading").text("1Heading");
  // No needed code
  var read = document.getElementById("heading");
  var text = read.value;
  console.log(text);
  //Should be 1Heading
</script>