vue+原生JavaScript实现slideDown与slideUp[简单思路]
整个代码如下:
- <template>
- <div style="width:400px;margin:100px auto;">
- <div class="con">
- <div class="same_module">
- <div class="title up" @click="slide($event)"><span>标题一</span><i class="arrow"></i></div>
- <div class="detail" style="height:0">
- <div class="inner">
- <p>这是一段文本</p>
- <p>这是一段文本</p>
- <p>这是一段文本</p>
- <p>这是一段文本</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- export default {
- data () {
- return {
- }
- },
- methods:{
- slide:function(event){
- let curTarget = event.currentTarget,
- containsCurClass = curTarget.classList.contains("up"),
- nextSibling = curTarget.nextSibling;
- while(nextSibling.nodeType == 3 && /\s/.test(nextSibling.nodeValue)){
- nextSibling = nextSibling.nextSibling;
- };
- let detailScrollHeight = nextSibling.scrollHeight;
- if(containsCurClass){
- curTarget.classList.remove("up");
- this.toggleSlide(nextSibling,detailScrollHeight,'500');
- }else{
- curTarget.classList.add("up");
- this.toggleSlide(nextSibling,0,'500');
- }
- },
- toggleSlide:function(dom,height,time){
- dom.style.transition = 'height ' + time + 'ms';
- dom.style.height = height + 'px';
- }
- }
- }
- </script>
- <style scoped>
- .same_module{border:1px solid grey;}
- .title{color:#fff;height:30px;line-height:30px;background:blue;padding:0 10px;cursor: pointer;overflow: hidden;}
- .title span{vertical-align:middle;}
- .title .arrow{float: right;}
- .detail{overflow: hidden;}
- .detail .inner{padding:5px 10px;background: #808080;color:#fff;}
- .detail p{line-height: 26px;}
- .arrow{
- display: inline-block;
- border-top: 2px solid;
- border-right: 2px solid;
- width: 8px;
- height: 8px;
- border-color: #EA6000;
- transform: rotate(315deg);
- position: relative;
- transition: all 0.5s ease-in;
- transform-origin: center center;
- top:50%;
- margin-top:-10px;
- }
- .up .arrow{
- transform: rotate(135deg);
- }
- </style>
参考地址:vue也可以 slidedown
vue+原生JavaScript实现slideDown与slideUp[简单思路]的更多相关文章
- jQuery学习之路(7)- 用原生JavaScript实现jQuery的某些简单功能
▓▓▓▓▓▓ 大致介绍 学习了妙味,用原生的JavaScript实现jQuery中的某些部分功能 定义自己的函数库lQuery ▓▓▓▓▓▓ $()选择器的实现 jQuery是面向对象的,所以自己编写 ...
- javascript学习-原生javascript的小特效(简单的运动效果)
前些日子看了个视频所以就模仿它的技术来为大家做出几个简单的JS小特效 一:运动特效(主要是通过改变元素的left,right,height,width,opacity来达到运动的效果) 我们今天做一个 ...
- 原生 JavaScript 代替 jQuery【转】
目录 用原生JavaScript代替jQuery Query Selector CSS & Style DOM Manipulation Ajax Events Utilities Promi ...
- 抛弃jQuery,拥抱原生JavaScript
前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操 ...
- 原生javascript封装动画库
****转载自自己发表于牛人部落专栏的文章**** 一.前言 本文记录了自己利用原生javascript构建自己的动画库的过程,在不断改进的过程中,实现以下动画效果: 针对同一个dom元素上相继发生的 ...
- 你可能不需要 jQuery!使用原生 JavaScript 进行开发
很多的 JavaScript 开发人员,包括我在内,都很喜欢 jQuery.因为它的简单,因为它有很多丰富的插件可供使用,和其它优秀的工具一样,jQuery 让我们开发人员能够更轻松的开发网站和 We ...
- 原生javascript模仿win8等待进度条。
一.序言 一直很中意win8等待提示圆圈进度条.win8刚出来那会,感觉好神奇!苦于当时没思路,没去研究.通过最近网上找找资料,终于给搞出来了!先上Demo,献丑了!预览请看:win8进度条. 二.简 ...
- 原生javascript写的侧栏跟随效果
浏览网站时经常看到有的网站上,当一个页面很长的时候,设定侧栏内容会跟随滚动条滚动,我们把这种效果叫做“侧栏跟随滚动”.这种特效对提高网站浏览量.文章点击率.广告点击量都有一定效果. 侧栏跟随滚动的实现 ...
- 四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现
原文:四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现 虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们 ...
随机推荐
- WebRTC系列(1)-手把手教你实现一个浏览器拍照室Demo
1.WebRTC开发背景 由于业务需求,需要在项目中实现实时音视频通话功能,之前基于浏览器开发的Web项目要进行音视频通话,需要安装flash插件才能实现或者使用C/S客户端进行通信.随着互联网技术的 ...
- .NET Core中使用AutoMapper
何为AutoMapper AutoMapper是对象到对象的映射工具.在完成映射规则之后,AutoMapper可以将源对象转换为目标对象. 安装AutoMapper 这里我们在NuGet中下载安装Au ...
- vue-router中元信息meta的妙用
{ path:"/test", name:"test", component:()=>import("@/components/test&quo ...
- ArcGIS Engine 笔记-控件类型
控件 MapControl Map 地图控件 PageLayouControl 布局地图控件 TOCControl 目录控件 ToolbarCo ...
- LNMP shell
#!/bin/bash #set -x #date: 2018-12-13 #Description: 一键安装LNMP环境 or LAMP 环境 #Version: 0.4 #Author: sim ...
- LeetCode算法题-Prime Number of Set Bits in Binary Representation(Java实现)
这是悦乐书的第311次更新,第332篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第180题(顺位题号是762).给定两个正整数L和R,在[L,R]范围内,计算每个整数的 ...
- June 29th. 2018, Week 26th. Friday
Real love is always worth waiting for. 真爱永远值得等待. From Westworld. Real love is rare, but it does exis ...
- 永久更改pip源和创建虚拟环境
一.永久更改pip源 1.windows 编辑%APPDATA%/pip中的pip.ini(若无则新建): C:\Users\v_xmmxhli λ cd %APPDATA%/pip C:\Users ...
- tcp/ip协议详解
1. 概念介绍 互联网协议(Internet Protocol Suite)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构.它常被通称为 TCP/IP 协议族(英语:TCP/I ...
- spring-boot-starter-mail技术总结
1. spring-boot-starter-mail技术总结 1.1. 配置读取类SMTPTransport 在application中需要配置的信息,在此类中都可以看到,可以在此类打断点查看 1. ...