原生JS实现幻灯片


Posted in Javascript onFebruary 22, 2017

效果如下:

原生JS实现幻灯片

代码如下:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <style type = "text/css">
 *{ padding: 0; margin: 0; }
 li { list-style: none; }
 .box {
 width: 800px;
 height: 450px;
 margin: 50px auto;
 position: relative;
  overflow:hidden;
 }
 .box span {
 width: 40px;
 height: 60px; 
 display: block;
 position: absolute;
 top: 225px;
 margin-top: -20px;
 cursor: pointer;
 z-index: 1;
 }
 .box #left {
 width: 76px;
 height: 112px;
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left 0;
 left: 0;
  margin-top: -66px;
 display: none;
 }
 .box #right {
 width: 76px;
 height: 112px;
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right 0;
 right: 0;
  margin-top: -66px;
 display: none;
 }
 .box #txt {
 width: 100%;
 height: 30px;
 background-color: #000;
 opacity: 0.4;
 position: absolute;
 bottom: 0;
 color: #fff;
 line-height: 30px;
 text-align: center;
 }
 #ad {
 width: 4000px;
 height: 450px;
 position: absolute;
 left: -1600px;
 }
 #ad li {
 float: left;
 }
  .box #left:hover {
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat left -112px;
 }
 .box #right:hover {
 background: url('http://www.w2bc.com/upload/201609/20/jiaoben4524/images/buttons.png') no-repeat right -112px;
 }
 </style>
 <script type = "text/javascript">
 window.onload = function(){
 function $(id){ return document.getElementById(id);}
 var aLi = $("ad").children;
 function animate(obj,target,arrt){
  //关闭上一个定时器
  clearInterval(obj.timer);
  $("txt").innerHTML = obj.children[0].children[0].alt;

  //管理定时器
  obj.timer = setInterval(function(){
 //移动步长
  var step = (target - obj.offsetLeft) / 10;
  //步长取整
  step = step > 0? Math.ceil(step):Math.floor(step);
  //移动盒子 : 盒子位置 + 步长
  obj.style.left = obj.offsetLeft + step+ "px";
  //关闭定时器
  if(obj.offsetLeft%800 ==0){
  clearInterval(obj.timer);
  //判断点击的方向
  if(arrt === "left"){
  var oLi = $("ad").children[aLi.length - 1].cloneNode(true);
  //添加到最前面
  obj.insertBefore(oLi,obj.children[0]);
  //删除最后一个盒子
  obj.removeChild(obj.children[aLi.length - 1]);
  //让ul恢复初始值
  obj.style.left = "-1600px";
 }else{
  //克隆第一个盒子
  var oLi = obj.children[0].cloneNode(true);
  //添加到最后面
  obj.appendChild(oLi);
  //删除第一个盒子
  obj.removeChild(obj.children[0]);
  //让ul恢复初始值
  obj.style.left = "-1600px";
 }
 }
  },20);
 }
 var timer = setInterval(autoplay,2000);
 function autoplay(){
  animate($("ad"),-2400,"right");
 }
 $("ad").parentNode.onmouseover = function(){
 clearInterval(timer);
 $("left").style.display = "block";
  $("right").style.display = "block";
 }
 $("ad").parentNode.onmouseout = function(){
  $("left").style.display = "none";
  $("right").style.display = "none";
  timer = setInterval(autoplay,2000);
 }
 $("left").onclick = function(){
  clearInterval(timer);
  animate($("ad"),-800,"left");
 }
 $("right").onclick = function(){
  clearInterval(timer);
  animate($("ad"),-2400,"right");
 }
 }
 </script>
 </head>
 <body>
 <div class="box"> 
 <ul id="ad">
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/4.jpg" alt="闲静似娇花照水,行动如弱柳扶风。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/5.jpg" alt="心较比干多一窍,病如西子胜三分。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/1.jpg" alt="两弯似蹙非蹙笼烟眉,一双似喜非喜含情目。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/2.jpg" alt="态生两靥之愁,娇袭一身之病。"></li>
 <li><img src="http://www.w2bc.com/upload/201609/20/jiaoben4524/images/3.jpg" alt="泪光点点,娇喘微微。"></li>
 </ul>
 <p id="txt">泪光点点,娇喘微微</p>
 <span id="left"></span>
 <span id="right"></span>
 </div>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
js星星评分效果
Jul 24 Javascript
jQuery中parent()方法用法实例
Jan 07 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 Javascript
js实现不重复导入的方法
Mar 02 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 Javascript
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
jQuery常用选择器详解
Jul 17 jQuery
vue 实现在函数中触发路由跳转的示例
Sep 01 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
Oct 12 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
Oct 18 Javascript
JS实现公告上线滚动效果
Jan 10 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 #Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 #Javascript
js中document.referrer实现移动端返回上一页
Feb 22 #Javascript
基于JS实现bookstore静态页面的实例代码
Feb 22 #Javascript
angular 动态组件类型详解(四种组件类型)
Feb 22 #Javascript
javascript 使用正则test( )第一次是 true,第二次是false
Feb 22 #Javascript
JavaScript实现256色转灰度图
Feb 22 #Javascript
You might like
坏狼的PHP学习教程之第2天
2008/06/15 PHP
php中Smarty模板初体验
2011/08/08 PHP
PHP中的表达式简述
2016/05/29 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
loading动画特效小结
2017/01/22 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python生成器表达式和列表解析
2016/03/10 Python
python分割列表(list)的方法示例
2017/05/07 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
Python实现手绘图效果实例分享
2020/07/22 Python
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
幼儿园评语大全
2014/04/17 职场文书
电钳工人个人求职信
2014/05/10 职场文书
财务负责人任命书
2014/06/06 职场文书
律师授权委托书范本
2014/10/07 职场文书
2014年组织部工作总结
2014/11/14 职场文书
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers