首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态添加html的动画显示

动态添加html的动画显示
EN

Stack Overflow用户
提问于 2013-03-19 08:18:23
回答 2查看 724关注 0票数 1

我在任何地方都找不到这个解决方案。

用户进行选择并输入一些值。当他点击添加时,我希望用jQuery添加的html动画(或向下滑动)进入视图。为了设置值,如何检索元素高度?

这就是父级;

代码语言:javascript
复制
<div class="order-summary-wrap"></div>

这段代码可以工作,但是很不协调。

代码语言:javascript
复制
// build the summary boxes from the users inputs
function create_summary(){
    var summary_html = '';

    if( $('.cycle-01').hasClass('cycle-slide-active') ){
        summary_html = '<div class="toll-free-summary-contents remove-me"><p class="line-one"><span class="new-toll-free-number">' + $('.cycle-01 .step-2-container .number').find("option:selected").attr("value") + '</span> in <span class="from-toll-free-country">' + $('.cycle-01 .step-1-container .country').find("option:selected").attr("value") + '</span> will ring to <span class="forward-to-number">' + $('.cycle-01 .step-3-container .country').find("option:selected").attr("value") + '</span> in <span class="to-toll-free-country">' + $('.cycle-01 .step-4-container #ForwardNumberTo').attr("value") + '</span></p><p class="line-two"><span class="toll-free-cost">' + $('.billing-options-hidden').find("option:selected").attr("value") + '</span> (FIRST MONTH FREE) with each minute used costing  <span class="toll-free-per-minute-cost">' + $('.per-minute').text() + '</span></p><div class="remove"><a class="remove-link" href="#">Remove</a><a class="view-link" href="#">View Sample Bill</a></div></div>';
    } else {
        summary_html = '<div class="local-summary-contents remove-me"><p class="line-one"><span class="country-local-number">' + $('.cycle-02 .step-1-container .country').find("option:selected").attr("value") + '</span>  <span class="state-local-number">' + $('.cycle-02 .step-2-container .state').find("option:selected").attr("value") + '</span>  <span class="city-local-number">' + $('.cycle-02 .step-3-container .city').find("option:selected").attr("value") + '</span>  <span class="new-local-number">' + $('.cycle-02 .step-4-container .local').find("option:selected").attr("value") + '</span></p><p class="line-two"><span class="toll-free-cost">' + $('.billing-options-hidden').find("option:selected").attr("value") + '</span> (FIRST MONTH FREE) with each minute used costing  <span class="toll-free-per-minute-cost">' + $('.per-minute').text() + '</span></p><div class="remove"><a class="remove-link" href="#">Remove</a><a class="view-link" href="#">View Sample Bill</a></div></div>';
    }

    $('.order-summary-wrap').append(summary_html);
    $('.add-more-numbers').removeClass('hidden');
}

// click event to dynamically add the summary boxes to the DOM
$('.first-step, .add-number').click(function(e){
    create_summary();
});

此外,当单击"remove“链接时,我希望元素在从DOM中删除时具有动画效果。

代码语言:javascript
复制
// lets the user remove the number from the DOM
$('.order-summary-wrap').on('click', '.remove-link', function(e) {
    e.preventDefault();
    $(this).parent().parent().remove();
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-19 08:26:03

如果你想滑下的是新的summary_html,你可以这样做。在追加之前隐藏DOM元素,然后在追加后使用.slideDown()使其可见。

下面是一个有效的演示(用更简单的代码来说明):http://jsfiddle.net/jfriend00/gHcZJ/

并且,这是你实现的代码:

代码语言:javascript
复制
// build the summary boxes from the users inputs
function create_summary(){
    var summary_html = '';

    if( $('.cycle-01').hasClass('cycle-slide-active') ){
        summary_html = $('<div class="toll-free-summary-contents remove-me"><p class="line-one"><span class="new-toll-free-number">' + $('.cycle-01 .step-2-container .number').find("option:selected").attr("value") + '</span> in <span class="from-toll-free-country">' + $('.cycle-01 .step-1-container .country').find("option:selected").attr("value") + '</span> will ring to <span class="forward-to-number">' + $('.cycle-01 .step-3-container .country').find("option:selected").attr("value") + '</span> in <span class="to-toll-free-country">' + $('.cycle-01 .step-4-container #ForwardNumberTo').attr("value") + '</span></p><p class="line-two"><span class="toll-free-cost">' + $('.billing-options-hidden').find("option:selected").attr("value") + '</span> (FIRST MONTH FREE) with each minute used costing  <span class="toll-free-per-minute-cost">' + $('.per-minute').text() + '</span></p><div class="remove"><a class="remove-link" href="#">Remove</a><a class="view-link" href="#">View Sample Bill</a></div></div>');
    } else {
        summary_html = $('<div class="local-summary-contents remove-me"><p class="line-one"><span class="country-local-number">' + $('.cycle-02 .step-1-container .country').find("option:selected").attr("value") + '</span>  <span class="state-local-number">' + $('.cycle-02 .step-2-container .state').find("option:selected").attr("value") + '</span>  <span class="city-local-number">' + $('.cycle-02 .step-3-container .city').find("option:selected").attr("value") + '</span>  <span class="new-local-number">' + $('.cycle-02 .step-4-container .local').find("option:selected").attr("value") + '</span></p><p class="line-two"><span class="toll-free-cost">' + $('.billing-options-hidden').find("option:selected").attr("value") + '</span> (FIRST MONTH FREE) with each minute used costing  <span class="toll-free-per-minute-cost">' + $('.per-minute').text() + '</span></p><div class="remove"><a class="remove-link" href="#">Remove</a><a class="view-link" href="#">View Sample Bill</a></div></div>');
    }
    summary_html.hide();
    $('.order-summary-wrap').append(summary_html);
    summary_html.slideDown();
}

// click event to dynamically add the summary boxes to the DOM
$('.first-step, .add-number').click(function(e){
    create_summary();
});
票数 1
EN

Stack Overflow用户

发布于 2013-03-19 08:29:03

jfriend00抢先了我一步您可以执行相同的操作来从DOM中删除编号。

代码语言:javascript
复制
$('.order-summary-wrap').on('click', '.remove-link', function(e) {
    e.preventDefault();
    $(this).parent().parent().slideUp().remove();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15489351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档