js轮播图之旋转木马效果_javascript技巧

来源:脚本之家  责任编辑:小易  

这个是用Javascript做到的 ,,, 不是CSS追问那不是淘宝基础版的,不能用了吗???www.zgxue.com防采集请勿采集本网。

本文实例为大家分享了js轮播图之旋转木马效果的具体代码,供大家参考,具体内容如下

思路:给定一个数组,储存每张图片的位置,旋转将位置进行替换

左旋转:将数组第一个数据删除,然后添加到数组的最后

右旋转:将数组最后一个数据删除,然后添加到数组的开头

先附上效果图,再来实现

接下来就是最主要的,封装原生js动画函数

//封装函数获取任意一个元素的任意属性的值(兼容ie8)function getStyle(element, attr) { return window.getComputedStyle ? window.getComputedStyle(element, null)[attr] : element.currentStyle[attr];}//封装js变速动画function animate(element, json, fn) { //每次启动定时器之前先停止 clearInterval(element.tmId); element.tmId = setInterval(function () { var flag = true; //遍历对象中的每个属性 for (var attr in json) { //执行透明度动画 if (attr == "opacity") { //获取当前元素的属性值 var current = parseInt(getStyle(element, attr)*100); //获取目标值 var target = json[attr]*100; //移动的步数 var step = (target - current) / 10; step = step > 0 ? Math.ceil(step) : Math.floor(step); //移动后的值 current += step; element.style[attr] = current / 100; } else if (attr == "zIndex") { //改变层级属性 element.style[attr] = json[attr]; } else { //获取当前元素的属性值 var current = parseInt(getStyle(element, attr)); //获取目标值 var target = json[attr]; //移动的步数 var step = (target - current) / 10; step = step > 0 ? Math.ceil(step) : Math.floor(step); //移动后的值 current += step; element.style[attr] = current + "px"; if (current != target) { flag = false; } } } if (flag) { clearInterval(element.tmId); //如果有回调函数就调用 if (fn) fn(); } // 测试 // console.log("目标:" + target + "/当前:" + current + "/步数:" + step); }, 20);}

封装完函数,剩下的直接调用就可以了,最后附上旋转木马完整代码?

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>旋转木马轮播图</title> <link rel="stylesheet" href="css/css(1).css" rel="external nofollow" /> <script src="common.js"></script> <script> var config = [ { width: 400, top: 20, left: 50, opacity: 0.2, zIndex: 2 },//0 { width: 600, top: 70, left: 0, opacity: 0.8, zIndex: 3 },//1 { width: 800, top: 100, left: 200, opacity: 1, zIndex: 4 },//2 { width: 600, top: 70, left: 600, opacity: 0.8, zIndex: 3 },//3 { width: 400, top: 20, left: 750, opacity: 0.2, zIndex: 2 }//4 ]; window.onload = function () { var flag = true; var list = $query("#slide").getElementsByTagName("li"); function flower() { //1、图片散开 for (var i = 0; i < list.length; i++) { //设置每个li的宽,透明度,left,top,zindex animate(list[i], config[i], function () { flag = true; }); } } flower();//初始化调用函数 //按钮的显示与隐藏 $query("#slide").onmouseover = function () { $query("#arrow").style.opacity = "1"; } $query("#slide").onmouseout = function () { $query("#arrow").style.opacity = "0"; } //点击切换 $query("#arrLeft").onclick = function () { if (flag) { config.unshift(config.pop()); flower(); flag = false; } } $query("#arrRight").onclick = function () { if (flag) { config.push(config.shift()); flower(); flag = false; } } //自动切换 setInterval(function () { config.push(config.shift()); flower(); }, 2000); } </script></head><body><div class="wrap" id="wrap"> <div class="slide" id="slide"> <ul> <li><a href="#"><img src="images/slidepic1.jpg" alt=""/></a></li> <li><a href="#"><img src="images/slidepic2.jpg" alt=""/></a></li> <li><a href="#" ><img src="images/slidepic3.jpg" alt=""/></a></li> <li><a href="#"><img src="images/slidepic4.jpg" alt=""/></a></li> <li><a href="#"><img src="images/slidepic5.jpg" alt=""/></a></li> </ul> <div class="arrow" id="arrow"> <a href="javascript:void(0);" class="prev" id="arrLeft"></a> <a href="javascript:void(0);" class="next" id="arrRight"></a> </div> </div></div></body></html>

精彩专题分享:jQuery图片轮播 JavaScript图片轮播 Bootstrap图片轮播

1.图片轮播效2113果实现主要实现思路是:根5261据图片总数及宽高设置好ScrollView的大4102小,每切换一张图片相1653当于在ScrollView上进行一个图片宽度的移动行为,并加入定时器,实现自动轮播。如图所示,设置好ScrollView及PageControl,ScrollView的contentSize根据图片数量确定,注意启用pagingEnabled这个属性,确保整页移动,同样pageControl也是根据图片数量来确定,每一页代表一张图片。图片命名采用数字序号方式,方便使用,需要注意的是,pageControl是由0开始的,也就是0对应image1,1对应image2...依次类推加载图片并将准备好的图片在ScrollView里设置好位置,即将这些图片一张紧挨着一张排列在ScrollView中。通过ScrollView的代理方法,在ScrollView滚动结束的时候根据contentOffset更新页码。定时器设置,这里设置为每隔2秒滚动更新一次,实际上就是每隔2秒更新一次页码,根据页码的变化,让ScrollView跟着移动,每次移动一张图片的距离这里还需要注意的是,由于加入定时器有自动轮播的效果了,会与手动拖拽ScrollView冲突,即手动拖拽ScrollView过程时ScrollView可能自动移动更新图片了,显然这种效果是不符合用户习惯的,这时需要在ScrollView的代理事件中进行处理,即开始拖拽ScrollView时停止定时器,拖拽结束后再开启定时器内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • bootstrap为水平排列的表单和内联表单设置可选的图标
  • javascript中string对象的方法介绍
  • js简单判断字符在另一个字符串中出现次数的2种常用方法
  • javascript实现动态时钟效果
  • 自己写的javascript计算时间差函数
  • javascript技术栈中的四种依赖注入详解
  • 微信小程序button组件使用详解
  • javascript自定义等待wait函数实例分析
  • javascript 监控微信浏览器且自带返回按钮时间
  • js实现浏览器的各种菜单命令比如打印、查看源文件等等
  • ios 能做轮播图旋转木马效果吗
  • 求淘宝CSS旋转木马轮播代码!!!!
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础知识javascript类库表单特效广告代码网页特效黑客性质javascript技巧domnode.jsjs其它首页javascriptjquery图片轮播javascript图片轮播js实现轮播图的完整代码原生js实现轮播图的示例代码js实现支持手机滑动切换的轮播图片效果实例js实现点击左右按钮轮播图片效果实例js轮播图实现简单代码js实现左右无缝轮播图代码js实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)原生js实现无限循环轮播图效果使用html+js+css 实现页面轮播图效果(实例讲解)基于vue.js轮播组件vue-awesome-swiper实现轮播图bootstrap为水平排列的表单和内联表单设置可选的图标javascript中string对象的方法介绍js简单判断字符在另一个字符串中出现次数的2种常用方法javascript实现动态时钟效果自己写的javascript计算时间差函数javascript技术栈中的四种依赖注入详解微信小程序button组件使用详解javascript自定义等待wait函数实例分析javascript 监控微信浏览器且自带返回按钮时间js实现浏览器的各种菜单命令比如打印、查看源文件等等js刷新页面方法大全js中settimeout()的用法详解js截取字符串常用方法详细整理js页面跳转常用的几种方式js删除数组里的某个元素方法js打开新窗口的2种方式js数组与字符串的相互转换方法js设置cookie、读取cookie、删除js 将json字符串转换为json对象的js关闭当前页面(窗口)的几种方式javascript之解决ie下不渲染的buges6学习笔记之map、set与数组、对象的对比浅析微信扫码登录原理(小结)为指定元素增加样式的js代码boostrap模态框二次弹出清空原有内容的方js实现按一下删除键删除整个单词附demojs 判断文件类型并控制表单提交示例代码js实现统计字符串中特定字符出现个数的方浅谈下拉菜单中的option对象判断li是否有样式的js代码
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved