div的显示与隐藏

优化彩票投注数据显示
本文介绍了一个小功能的实现过程,即优化彩票投注数据显示的方式。通过使用JavaScript动态切换两个div元素来展示投注的概要信息和详细内容,解决了投注详情撑开表格的问题。

今天做个小功能(2009-3-6):
将取得的数据显示在一jsp页面中,这两条记录是彩票投注的数据。
显示问题:"方案内容"可能包含多注,当前的页面中显示出来会将表格撑开成多行显示,视觉效果不太好。



 

解决办法:
在当前页面中添加一个div,用来显示"点击查看"应该看到的用户的投注。
1.首次打开该页面,显示betsDetail(概括信息内容),隐藏betsContent(投注详情)
2.点击“点击查看”,隐藏betsDetail,显示betsContent

 

见如下代码:

    <script>   
     function viewDetail(){  
      var betsDetailObj = document.getElementById("betsDetail");  
      betsDetailObj.style.display = "none";  
        
      var contentValue = document.getElementById("content").value;  
      document.getElementById("contentParam").innerHTML = contentValue;  
          
      var betsContentObj = document.getElementById("betsContent");  
      betsContentObj.style.display = "";  
      betsContentObj.className = "hover";  
     }  
       
    </script>  
      
      
    <div id="betsDetail" class="hover" style="">  
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#D5EDFD" class="fontBlue">  
      <tr>  
        <td height="30" colspan="13" align="left" background="../Image/bg_table.jpg" bgcolor="#CBE9F9"> 查询投注记录列表</td>  
      </tr>  
      <tr>  
        <td height="25" bgcolor="#DDEEF9">序号</td>  
        <td width="15%" height="25" bgcolor="#DDEEF9">投注方案ID</td>  
        <td width="10%" bgcolor="#DDEEF9">SLT编号</td>  
        <td width="10%" bgcolor="#DDEEF9">购买彩种</td>  
        <td width="10%" bgcolor="#DDEEF9">投注时间</td>  
        <td width="5%" bgcolor="#DDEEF9">购买方式</td>  
        <td width="5%" bgcolor="#DDEEF9">玩法</td>  
        <td width="20%" bgcolor="#DDEEF9">方案内容 </td>  
        <td width="5%" bgcolor="#DDEEF9">投注注数</td>  
        <td width="10%" bgcolor="#DDEEF9">投注金额</td>  
        <td width="5%" bgcolor="#DDEEF9">处理状态</td>  
        <td width="5%" bgcolor="#DDEEF9">中奖注数</td>  
        <td bgcolor="#DDEEF9">中奖金额</td>  
      </tr>   
       
    <tr>  
        <td width="5%" align="center" bgcolor="#FFFFFF">1</td>  
        <td bgcolor="#FFFFFF"></td>  
        <td align="center" bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF">  
         <a href="#" target="mainFrame" onclick="viewDetail()">点击查看</a>  
        </td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
        <td bgcolor="#FFFFFF"></td>  
      </tr>  
      
    </table>  
    </div>  
      
      
    <div id="betsContent" class="" style="display:none">  
     <table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#D5EDFD" class="fontBlue">  
      <tr>  
         <td height="30" colspan="13" align="left" background="../Image/bg_table.jpg" bgcolor="#CBE9F9">投注内容列表:</td>  
       </tr>  
        
       <tr>  
         <td align="right" bgcolor="#EEF6FB" class="fontjuhuan">选号内容:</td>  
         <td colspan="5" bgcolor="#EEF6FB">  
          <div id="contentParam"></div>  
         </td>  
       </tr>  
      </table>  
    </div>  

 

在调试的过程中,总是出现一个问题:点击"点击查询",页面上什么都不显示,调试js:
1.alert(document.getElementById("contentParam").innerHTML = contentValue;);
显示是正确的。

 

2.如果将两个div设置成都显示的话,betsContent正确显示,并且<div id="contentParam"></div>中也被添加了正确的数据。

 

经过数十次的调试修改才发现,原来是<div id="betsDetail" class="hover" style="">的截止符写成<div>了,调试工具用的dreamweaver8,没有任何错误提示,导致花费了太多的调试时间, 真实气死人阿!!!

 

大家都在用什么好的html或相关的调试工具,推荐一下阿。

 

### 使用 HTML、CSS 和 JavaScript 控制 `div` 元素的显示隐藏 在网页开发中,控制 `div` 元素的显示隐藏是常见的交互需求。可以通过 CSS 的样式属性或 JavaScript 动态操作 DOM 来实现这一功能。 #### 通过 CSS 控制显示隐藏 CSS 提供了 `display` 属性来控制元素是否显示。例如,设置 `display: none;` 可以隐藏元素,而 `display: block;` 或 `display: inline-block;` 可以使其显示: ```css .hidden { display: none; } .visible { display: block; } ``` 对应的 HTML 结构如下: ```html <div id="myDiv" class="visible">这是一个可显示/隐藏div</div> ``` 使用纯 CSS 方法通常适用于静态页面中的状态切换,但无法实现动态交互效果。 --- #### 通过 JavaScript 控制显示隐藏 JavaScript 提供了更灵活的方式来动态控制元素的可见性。通过修改 `style.display` 属性,可以实现点击按钮或其他事件触发时切换 `div` 的显示状态: ```html <input type="button" value="隐藏" onclick="toggleDiv()" id="btn1"> <div id="div1" style="width: 200px; height: 200px; background-color: rgb(255, 136, 0);"> </div> <script> function toggleDiv() { var btn = document.getElementById("btn1"); var div = document.getElementById("div1"); if (div.style.display === "none") { div.style.display = "block"; btn.value = "隐藏"; } else { div.style.display = "none"; btn.value = "显示"; } } </script> ``` 该方法允许开发者根据用户行为(如点击、悬停等)来控制元素的状态变化[^2]。 --- #### 使用 `visibility` 替代 `display` 除了 `display` 属性外,还可以使用 `visibility` 来控制元素的可见性。`visibility: hidden;` 会隐藏元素,但保留其在布局中的空间;而 `visibility: visible;` 则使其可见: ```css .hide { visibility: hidden; } .show { visibility: visible; } ``` 这种方式适合需要保留元素占位空间的场景,但不适用于完全移除元素对布局的影响。 --- #### 结合 CSS 和 JavaScript 实现动画过渡 为了增强用户体验,可以在切换显示状态时添加动画效果。例如,使用 CSS 过渡结合 JavaScript 修改类名: ```css .fade { opacity: 1; transition: opacity 0.5s ease-out; } .fade.hidden { opacity: 0; } ``` JavaScript 部分如下: ```javascript function toggleFade() { var element = document.getElementById("fadeDiv"); element.classList.toggle("hidden"); } ``` HTML 示例: ```html <button onclick="toggleFade()">切换透明度</button> <div id="fadeDiv" class="fade">渐变显示/隐藏</div> ``` 这种方法不仅实现了视觉上的平滑过渡,还提升了用户交互体验。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值