【问题标题】:Onclick changing content on <div>Onclick 更改 <div> 上的内容
【发布时间】:2017-04-17 06:59:09
【问题描述】:

有没有一种方法可以让右边一次出现一个?并通过滑动显示?

这是我用来调用的代码

<button onClick="div1()">Try it</button>
<button onClick="div2()">Try it</button>
<button onClick="div3()">Try it</button>

这是我正在使用的脚本

<script>
function div1() {
    var x = document.getElementById('myDIV');
    if (x.style.display === 'none') {
        x.style.display = 'block';
    } else {
        x.style.display = 'none';
    }
}

function div2() {
    var x = document.getElementById('myDIV2');
    if (x.style.display === 'none') {
        x.style.display = 'block';
    } else {
        x.style.display = 'none';
    }
}

function div3() {
    var x = document.getElementById('myDIV3');
    if (x.style.display === 'none') {
        x.style.display = 'block';
    } else {
        x.style.display = 'none';
    }
}
</script>

我想让我的网站看起来像这样

【问题讨论】:

  • 欢迎来到 SO。我认为您需要更具描述性才能在此处获得答案。阅读stackoverflow.com/help/how-to-ask
  • .slideToggle() 可用于滑动显示
  • 我应该把 .slideToggle() 放在哪里?

标签: javascript jquery html css customization


【解决方案1】:

通过创建一个发送 div 编号(1、2、3 ...)的函数,您可以滑动相关的 div 并隐藏所有其他 div。

试试下面的 sn-p :( 使用 jquery ),

function toggleDiv(divNum) {
    
    $("#close").hide();
    $(".slide").animate({right:'-200'},350);
    if($("#div"+divNum)) {
        
        $("#div"+divNum).animate({right:'0'},350,function(){$("#close").show();});
    }
}

$(document).ready(function(){
   $("#close").on("click",function(e){
      $(".slide").animate({right:'-200'},350);
      $(this).hide()
   })

})
.slide {
  width:200px;
  height:100%;
  position:absolute;
  right:-200px;
  top:0;
  background:#d2d2d2;
}

#close {
  position:absolute;
  right:10px;
  top:10px;
  z-index:10;
  display:none;
}

#right-content {
  position:absolute;
  right:0;
  top:0;
  overflow:hidden;
  width:200px;
  height:100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onClick="toggleDiv(1)">Try it 1</button>
<button onClick="toggleDiv(2)">Try it 2</button>
<button onClick="toggleDiv(3)">Try it 3</button>

<div id="right-content">
  <div id="close">X</div>
  <div class="slide" id="div1">content 1</div>
  <div class="slide" id="div2">hey I'm content 2</div>
  <div class="slide" id="div3">Now it's content 3</div>
<div>

【讨论】:

  • 添加了关闭 X 按钮
  • 幻灯片放映时有没有办法让左边的内容移动?
  • @KeithMercado 你能解释一下你的需要吗?
【解决方案2】:

这样做:

<div id="rightSideDiv" ></div>
<input type="hidden" id="myHiddenField1" value="<b> Info of div 1</b>" />
<input type="hidden" id="myHiddenField2" value="<b> Info of div 2</b>" />
<input type="hidden" id="myHiddenField3" value="<b> Info of div 3</b>" />

<button onClick="doDisplay('myHiddenField1')">Try it</button>
<button onClick="doDisplay('myHiddenField2')">Try it</button>
<button onClick="doDisplay('myHiddenField3')">Try it</button>

<script>
function doDisplay(hiddenFileldID) {
    var x = document.getElementById(hiddenFileldID).value;
    document.getElementById("rightSideDiv").innerHTML = x;
}
</script>

【讨论】:

  • 不是创建这么多的分区,而是创建具有不同 ID 的隐藏字段,其值等于这些 div 的内部 html。并只创建一个 div 用于显示。按钮的 OnClick 将隐藏字段的相应值添加到该 div 的内部 html。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多