JS实现的适合做faq或menu滑动效果示例


Posted in Javascript onNovember 17, 2016

本文实例讲述了JS实现的适合做faq或menu滑动效果。分享给大家供大家参考,具体如下:

<!CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!--
body,div,ul,li,p,h1,h2{ margin:0; padding:0; border:0; background:#FAFAFA; font-family:Arial, Helvetica, sans-serif,"宋体"}
body{ text-align:center; font-size:12px}
li{ list-style:none}
.rolinList{ width:402px; height:auto; margin:20px auto 0 auto; text-align:left}
.rolinList li{margin-bottom:1px;border:1px solid #DADADA}
.rolinList li h2{ width:380px; height:40px; background:#fff; font-size:14px; line-height:40px; padding-left:20px; color:#333; cursor:pointer}
.content{ height:150px;width:400px; background:#fff; background:#FAFAFA}
.content p{ margin:12px}
-->
</style>
<script type="text/javascript">
//<![CDATA[
window.onload = function() {
rolinTab("rolin")
}
function rolinTab(obj) {
var list = $(obj).getElementsByTagName("LI");
var state = {show:false,hidden:false,showObj:false};
for (var i=0; i<list.length; i++) {
var tmp = new rolinItem(list[i],state);
if (i == 0) tmp.pShow();
}
}
function rolinItem(obj,state) {
var speed = 0.0666; 
var range = 1;
var interval;
var tarH;
var tar = this;
var head = getFirstChild(obj);
var content = getNextChild(head);
var isOpen = false;
this.pHidden = function() {
if (isOpen) hidden();
}
this.pShow = show;
var baseH = content.offsetHeight;
content.style.display = "none";
var isOpen = false;
head.onmouseover = function() {
this.style.background = "#EFEFEF";
}
head.onmouseout = mouseout;
head.onclick = function() {
this.style.background = "#EFEFEF";
if (!state.show && !state.hidden) {
if (!isOpen) {
head.onmouseout = null;
show();
} else {
hidden();
}
}
}
function mouseout() {
this.style.background = "#FFF"
}
function show() {
head.style.borderBottom = "1px solid #DADADA";
state.show = true;
if (state.openObj && state.openObj != tar ) {
state.openObj.pHidden();
}
content.style.height = "0px";
content.style.display = "block";
content.style.overflow = "hidden";
state.openObj = tar;
tarH = baseH;
interval = setInterval(move,10);
}
function showS() {
isOpen = true;
state.show = false;
}
function hidden() {
state.hidden = true;
tarH = 0;
interval = setInterval(move,10);
}
function hiddenS() {
head.style.borderBottom = "none";
head.onmouseout = mouseout;
head.onmouseout();
content.style.display = "none";
isOpen = false;
state.hidden = false;
}
function move() {
var dist = (tarH - content.style.height.pxToNum())*speed;
if (Math.abs(dist) < 1) dist = dist > 0 ? 1: -1;
content.style.height = (content.style.height.pxToNum() + dist) + "px";
if (Math.abs(content.style.height.pxToNum() - tarH) <= range ) {
clearInterval(interval);
content.style.height = tarH + "px";
if (tarH != 0) {
showS()
} else {
hiddenS();
}
}
}
}
var $ = function($) {return document.getElementById($)};
String.prototype.pxToNum = function() {return Number(this.replace("px",""))}
function getFirstChild(obj) {
var result = obj.firstChild;
while (!result.tagName) {
result = result.nextSibling;
}
return result;
}
function getNextChild(obj) {
var result = obj.nextSibling;
while (!result.tagName) {
result = result.nextSibling;
}
return result;
}
//]]>
</script>
<ul id="rolin">
  <li>
  <h2>三水点靠木 1</h2>
  <div <p>三水点靠木--专业IT综合性网站<br /><br /><a target="_blank" href="https://3water.com/">https://3water.com/</a></p>
  </div>
  </li>
  <li>
  <h2>三水点靠木 2</h2>
  <div <p>三水点靠木--专业IT综合性网站<br /><br /><a target="_blank" href="https://3water.com/">https://3water.com/</a></p>
  </div>
  </li>
  <li>
  <h2>三水点靠木 3</h2>
  <div <p>三水点靠木--专业IT综合性网站<br /><br /><a target="_blank" href="https://3water.com/">https://3water.com/</a></p>
  </div>
  </li>
  <li>
  <h2>三水点靠木 4</h2>
  <div <p>三水点靠木--专业IT综合性网站<br /><br /><a target="_blank" href="https://3water.com/">https://3water.com/</a></p>
  </div>
  </li>
  <li>
  <h2>三水点靠木 5</h2>
  <div <p>三水点靠木--专业IT综合性网站<br /><br /><a target="_blank" href="https://3water.com/">https://3water.com/</a></p>
  </div>
  </li>
  <li>
  <h2>三水点靠木 6</h2>
  <div <p>三水点靠木--专业IT综合性网站<br /><br /><a target="_blank" href="https://3water.com/">https://3water.com/</a></p>
  </div>
  </li>
</ul>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 动态酷效果实现总结
Dec 27 Javascript
jquery选择器(常用选择器说明)
Sep 28 Javascript
Jquery提交表单 Form.js官方插件介绍
Mar 01 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
Javascript高级技巧分享
Feb 25 Javascript
javascript中数组array及string的方法总结
Nov 28 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
Dec 17 Javascript
jQuery1.9+中删除了live以后的替代方法
Jun 17 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
Nov 17 #Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
Nov 17 #Javascript
leaflet的开发入门教程
Nov 17 #Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 #Javascript
JS实现倒计时(天数、时、分、秒)
Nov 16 #Javascript
探讨AngularJs中ui.route的简单应用
Nov 16 #Javascript
jQuery 插件封装的方法
Nov 16 #Javascript
You might like
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP字符串word末字符实现大小写互换的方法
2014/11/10 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php for 循环使用的简单实例
2016/06/02 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
python中的对象拷贝示例 python引用传递
2014/01/23 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python中的__init__作用是什么
2020/06/09 Python
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
如何提高SQL Server的安全性
2016/07/25 面试题
医院护理人员的自我评价分享
2013/10/04 职场文书
对孩子的寄语
2014/04/09 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
初中生物教学随笔
2015/08/15 职场文书