【问题标题】:expand div with focus-jquery用focus-jquery扩展div
【发布时间】:2010-05-04 18:55:53
【问题描述】:

几周后我会重新审视它,因为我以前无法让它工作,希望现在能工作。

请查看此网站 - 请注意右上角的时事通讯注册表单。

http://www.rattletree.com

我现在希望它看起来完全一样,但是当用户在框中单击以输入他们的电子邮件地址时,包含的 div 将在电子邮件字段上方展开(或简单地出现)以包含“名称”和“城市”字段。

我正在大量使用 jquery,所以我可以随意使用它。此表单在标题中,因此任何 id 信息等都不能与 body 标记...

这是我目前所拥有的:

 <div class="outeremailcontainer">
    <div id="emailcontainer">
    <?php include('verify.php'); ?>
      <form action="index_success.php" method="post" id="sendEmail" class="email">
        <h3 class="register2">Newsletter Signup:</h3>
        <ul class="forms email">
            <li class="email"><label for="emailFrom">Email: </label>
                 <input type="text" name="emailFrom" class="info" id="emailFrom" value="<?= $_POST['emailFrom']; ?>" />
                 <?php if(isset($emailFromError)) echo '<span class="error">'.$emailFromError.'</span>'; 
                 ?>
            </li>

           <li class="buttons email">
               <button type="submit" id="submit">Send</button>
               <input type="hidden" name="submitted" id="submitted" value="true" />
           </li>

        </ul>
      </form>
    <div class="clearing">
    </div>
       </div>

css:

p.emailbox{
text-align:center;
margin:0;
}

p.emailbox:first-letter {
 font-size: 120%;
 font-weight: bold;
 }

.outeremailcontainer {
height:60px;
width: 275px;
background-image:url(/images/feather_email2.jpg);
/*background-color:#fff;*/
text-align:center;
/* margin:-50px 281px 0 auto ; */
float:right;
position:relative;
z-index:1;
}


form.email{
position:relative;
}


#emailcontainer {
margin:0;
padding: 0 auto;
z-index:1000;
display:block;
position:relative;
}

感谢您的帮助!

乔尔

【问题讨论】:

    标签: jquery css forms


    【解决方案1】:

    嗨!我为您发布了a demo。基本上,额外的输入在表单内,但被隐藏了。当您将焦点放在电子邮件输入上时,隐藏的元素就会显露出来。我使用.slideDown() 函数展示了它们,但您可以用任何类型的动画替换它。我还在输入框下方添加了一个叠加层,您可以根据需要调整 CSS 使其完全透明,因为叠加层的真正目的是在单击时隐藏额外的输入。

    HTML(我为演示去掉了 php)

    <div class="outeremailcontainer">
     <div id="emailcontainer">
      <form action="index_success.php" method="post" id="sendEmail" class="email">
       <h3 class="register2">Newsletter Signup:</h3>
       <ul class="forms email">
        <li class="name"><label for="yourName">Name: </label>
         <input type="text" name="yourName" class="info" id="yourName" value=" " /><br>
        </li>
    
        <li class="city"><label for="yourCity">City: </label>
         <input type="text" name="yourCity" class="info" id="yourCity" value=" " /><br>
        </li>
    
        <li class="email"><label for="emailFrom">Email: </label>
         <input type="text" name="emailFrom" class="info" id="emailFrom" value=" " />
        </li>
    
        <li class="buttons email">
         <button type="submit" id="submit">Send</button>
         <input type="hidden" name="submitted" id="submitted" value="true" />
        </li>
    
       </ul>
      </form>
    </div>
    

    脚本

    $(document).ready(function(){
    
     $('#emailFrom')
      .focus(function(){
       if ($('#overlay').length) { return; } // don't keep adding overlays if one exists
       $('#sendEmail')
        .css({ backgroundColor: '#ddd' })
        .find('.name, .city').slideDown(300, function(){ $(this).show(); }); // added so this works in IE
       $('.outeremailcontainer').css({ position: 'relative', bottom: 0, left: 0, zIndex : 1001 });
       $('<div id="overlay"></div>').appendTo('body');
      });
    
     $('#overlay').live('click', function(){
       $('#sendEmail')
        .css({ backgroundColor : 'transparent' })
        .find('.name, .city').slideUp(300);
       $('.outeremailcontainer').css({ position : 'static' });
       $('#overlay').remove();
      });
    
    });
    

    【讨论】:

    • 非常酷!我现在必须跑步,但我今晚要处理这个问题。非常感谢,感谢您制作演示!
    • 哎呀,对不起...我不知道.slideDown() 在 IE 中不能正常工作。我发现这篇文章 (beyondcoding.com/2009/02/26/…) 有一个修复,但我在上面稍微修改了它(将 .slideDown(300) 更改为 .slideDown(300, function(){ $(this).show(); });)所以它现在应该可以工作了。 :)
    • 你好,非常感谢!您在那里的修复使表单向下滑动,但我仍然遇到表单字段消失的问题。我找到了这篇文章:bennadel.com/blog/… 并且缩放实际上对我有用...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2018-11-26
    • 2018-10-12
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多