js同时展开或收起左右两个div

这段代码展示了如何使用Vue.js的数据绑定和事件处理方法来控制内容的显示和隐藏,同时结合CSS3的动画效果实现图片切换和元素的淡入淡出过渡。点击按钮时,内容会通过fadeInLeft和fadeOutLeft动画在页面上滑入和滑出。
摘要由CSDN通过智能技术生成

 

 <div class="carlineDetail animated" :class="[showHideBtn ? 'fadeInLeft' : 'fadeOutLeft']">

<div class="linediv">

          <div class="hideshowDiv" :class="[showHideBtn ? 'detailBtnHide' : 'detailBtnShow']">

            <img @click="showHideDetailBtn" :src="btnshowhide" :class="[showHideBtn ? 'el-icon-arrow-left' : 'el-icon-arrow-right']" />

          </div>

</div>

</div>

<div class="animated" :class="[showHideBtn ? ' fadeInRight' : 'fadeOutRight']" ></div>

js代码

//图片

import btnshowimg from '@/assets/imagemap/btnshow.png'

import btnhideimg from '@/assets/imagemap/btnhide.png'

data() {

    return {

      // 显示隐藏按钮

      btnshowhide: btnshowimg,

    }

}

    // 点击隐藏显示车辆、线路详情内容,动画过渡

    showHideDetailBtn() {

      this.showHideBtn = !this.showHideBtn

      if (this.showHideBtn) {

        this.btnshowhide = btnshowimg

      } else {

        this.btnshowhide = btnhideimg

      }

    },

css代码

.carlineDetail {

      width: 332px;

      height: 300px;

      font-size: 14px;

      margin-top: 88px;

      margin-left: 20px;

}

 

// 隐藏显示效果

.hideshowDiv {

      display: block;

      right: -16px;

      position: absolute;

      z-index: 101;

      cursor: pointer;

    }

    .fadeOutLeft.carlineDetail {

      margin-left: 0px;

    }

    .fadeInLeft.carlineDetail {

      margin-left: 20px;

    }

    // 隐藏显示效果end

//隐藏显示效果 @keyframes嵌套在@media中IE浏览器兼容问题

.animated {

  -moz-animation-duration: 1s;

  -ms-animation-duration: 1s;

  -webkit-animation-duration: 1s;

  animation-duration: 1s;

  -moz-animation-fill-mode: both;

  -ms-animation-fill-mode: both;

  -webkit-animation-fill-mode: both;

  animation-fill-mode: both;

}

.fadeInLeft {

  -moz-animation-name: fadeInLeft;

  -ms-animation-name: fadeInLeft;

  -webkit-animation-name: fadeInLeft;

  animation-name: fadeInLeft;

}

.fadeInRight {

  -moz-animation-name: fadeInRight;

  -ms-animation-name: fadeInRight;

  -webkit-animation-name: fadeInRight;

  animation-name: fadeInRight;

}

.fadeOutLeft {

  -moz-animation-name: fadeOutLeft;

  -ms-animation-name: fadeOutLeft;

  -webkit-animation-name: fadeOutLeft;

  animation-name: fadeOutLeft;

}

.fadeOutRight {

  -moz-animation-name: fadeOutRight;

  -ms-animation-name: fadeOutRight;

  -webkit-animation-name: fadeOutRight;

  animation-name: fadeOutRight;

}

@-webkit-keyframes fadeInLeft {

  0% {

    opacity: 0;

    transform: translateX(-100%);

    -webkit-transform: translateX(-100%);

    // -webkit-transform: translate3d(-100%, 0, 0);

    // transform: translate3d(-100%, 0, 0);

  }

}

@keyframes fadeInLeft {

  0% {

    opacity: 0;

    transform: translateX(-100%);

    -webkit-transform: translateX(-100%);

    -moz-transform: translateX(-100%);

    -ms-transform: translateX(-100%);

    // -moz-transform: translate3d(-100%, 0, 0);

    // -ms-transform: translate3d(-100%, 0, 0);

    // -webkit-transform: translate3d(-100%, 0, 0);

    // transform: translate3d(-100%, 0, 0);

  }

}

@-webkit-keyframes fadeInRight {

  0% {

    opacity: 0;

    transform: translateX(100%);

    -webkit-transform: translateX(100%);

    // -webkit-transform: translate3d(100%, 0, 0);

    // transform: translate3d(100%, 0, 0);

  }

}

@keyframes fadeInRight {

  0% {

    opacity: 0;

    transform: translateX(100%);

    -webkit-transform: translateX(100%);

    -moz-transform: translateX(100%);

    -ms-transform: translateX(100%);

    // -moz-transform: translate3d(100%, 0, 0);

    // -webkit-transform: translate3d(100%, 0, 0);

    // -ms-transform: translate3d(100%, 0, 0);

    // transform: translate3d(100%, 0, 0);

  }

}

@-webkit-keyframes fadeOutLeft {

  0% {

    opacity: 1;

  }

  100% {

    transform: translateX(-100%);

    -webkit-transform: translateX(-100%);

    // -webkit-transform: translate3d(-100%, 0, 0);

    // transform: translate3d(-100%, 0, 0);

  }

}

@keyframes fadeOutLeft {

  0% {

    opacity: 1;

  }

  100% {

    transform: translateX(-100%);

    -webkit-transform: translateX(-100%);

    -moz-transform: translateX(-100%);

    -ms-transform: translateX(-100%);

    // -moz-transform: translate3d(-100%, 0, 0);

    // -ms-transform: translate3d(-100%, 0, 0);

    // -webkit-transform: translate3d(-100%, 0, 0);

    // transform: translate3d(-100%, 0, 0);

  }

}

@-webkit-keyframes fadeOutRight {

  0% {

    opacity: 1;

  }

  100% {

    opacity: 0;

    transform: translateX(100%);

    -webkit-transform: translateX(100%);

    // -webkit-transform: translate3d(100%, 0, 0);

    // transform: translate3d(100%, 0, 0);

  }

}

@keyframes fadeOutRight {

  0% {

    opacity: 1;

  }

  100% {

    opacity: 0;

    transform: translateX(100%);

    -webkit-transform: translateX(100%);

    -moz-transform: translateX(100%);

    -ms-transform: translateX(100%);

    // -moz-transform: translate3d(100%, 0, 0);

    // -ms-transform: translate3d(100%, 0, 0);

    // -webkit-transform: translate3d(100%, 0, 0);

    // transform: translate3d(100%, 0, 0);

  }

}

//隐藏显示效果 @keyframes嵌套在@media中IE浏览器兼容问题 end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现多行文本的展开/收起,可以使用JavaScript来控制文本的显示和隐藏。以下是一种实现方式: 1. 首先,需要在HTML中定义一个带有固定高度的div,并将文本内容放在其中,例如: ```html <div id="text" style="height: 100px; overflow: hidden;"> <p>这里是一段多行文本。</p> <p>这里是第二行。</p> <p>这里是第三行。</p> </div> ``` 2. 接下来,在JavaScript中获取该div的高度和内容的总高度,如果内容高度大于div高度,则表示需要展开/收起按钮,否则不需要。可以使用以下代码实现: ```javascript var text = document.getElementById("text"); var contentHeight = text.scrollHeight; var divHeight = text.offsetHeight; if (contentHeight > divHeight) { // 需要展开/收起按钮 } ``` 3. 如果需要展开/收起按钮,可以在页面上添加两个按钮,一个用于展开,一个用于收起。点击按钮时,切换div的高度即可。可以使用以下代码实现: ```javascript var expandBtn = document.createElement("button"); expandBtn.innerHTML = "展开"; expandBtn.onclick = function() { text.style.height = contentHeight + "px"; expandBtn.style.display = "none"; collapseBtn.style.display = "inline-block"; }; var collapseBtn = document.createElement("button"); collapseBtn.innerHTML = "收起"; collapseBtn.onclick = function() { text.style.height = divHeight + "px"; collapseBtn.style.display = "none"; expandBtn.style.display = "inline-block"; }; collapseBtn.style.display = "none"; text.parentNode.insertBefore(expandBtn, text.nextSibling); text.parentNode.insertBefore(collapseBtn, text.nextSibling); ``` 这样,就可以实现多行文本的展开/收起功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值