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 相关文章推荐
浅析javascript闭包 实例分析
Dec 25 Javascript
图片无缝滚动代码(向左/向下/向上)
Apr 10 Javascript
dwz 如何去掉ajaxloading具体代码
May 22 Javascript
TypeError document.getElementById(...) is null错误原因
May 18 Javascript
jquery 仿锚点跳转到页面指定位置的实例
Feb 14 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
React组件生命周期详解
Jul 03 Javascript
Vue.js移动端左滑删除组件的实现代码
Sep 08 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
Aug 04 Javascript
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
Canvas跟随鼠标炫彩小球的实现
Apr 11 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自定义的格式化时间示例代码
2013/12/05 PHP
对JavaScript的eval()中使用函数的进一步讨论
2008/07/26 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
轮播图组件js代码
2016/08/08 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Python中创建二维数组
2018/10/17 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
python 字符串格式化的示例
2020/09/21 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
母亲追悼会答谢词
2014/01/27 职场文书
董事长秘书职责
2014/01/31 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
初中生期末评语大全
2014/04/24 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
美术教师求职信范文
2015/03/20 职场文书
培根随笔读书笔记
2015/07/01 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python